From Java to Dart

前言

幫助你快速入門 Dart

Print to Console

Java

System.out.print("Hello, World");
System.out.println("Hello, World");

Dart

print('Hello, World!');

Constants and Variables

Java

String name="LiLy";
final String name="LiLy";
int lineCount;? 默認值是 0

Dart

var name = 'LiLy'? ?OR??String name="LiLy";
final name = 'LiLy';? OR? final String nickname = 'Bobby';
int lineCount;? 默認值是 null

Verify if value is null

Java

if (text != null) {
? ?int length=text.length();
}

Dart

if (text != null) {
? ?int length=text.length();
}

Concatenation of strings

Java

String firstName = "A";
String lastName = "B";
String name = "My name is: " + firstName + " " + lastName;

Dart

String firstName = "A";
String lastName = "B";
String name = "My name is: ${firstName} ${lastName}"?
String name = "My name is: " + firstName + " " + lastName;??

New line in string

Java

String text = "First Line\n" + "Second Line\n" + "Third Line";

Dart

String text = "First Line\nSecond Line\nThird Line";

Ternary Operations

Java

String text = x > 5 ? "x > 5" : "x <= 5";
String message = null;
System.out.print(message != null ? message : "");

Dart

String text = x > 5 ? "x > 5" : "x <= 5";
String message = null;?
print(message != null ? message : "");

Bitwise Operators

Java

final int andResult = a & b;
final int orResult = a | b;
final int xorResult = a ^ b;
final int rightShift = a >> 2;
final int leftShift = a << 2;
final int unsignedRightShift = a >>> 2;

Dart

final int andResult = a & b;?
final int orResult = a | b;?
final int xorResult = a ^ b;?
final int rightShift = a >> 2;?
final int leftShift = a << 2;
最后一個不知道诀艰,官方文檔也沒查到,誰要是知道可以留言,謝謝??

Check the type and casting

Java

if (object instanceof Car) {
}

Dart

if (object is Car) {?
?}

Multiple conditions

Java

if (score >= 0 && score <= 300) {
?}

Dart

同上

Multiple Conditions (Switch case)

Java

int score = // some score;
String grade;
switch (score) {
?case 10:
?case 9:
? ? ? ? ? ? ?grade = "Excellent";
? ? ? ? ? ? ?break;
?case 8:
?case 7:
?case 6:
? ? ? ? ? ? grade = "Good";
? ? ? ? ? ? break;
?case 5:
?case 4:
? ? ? ? ? ? grade = "OK";
? ? ? ? ? ? break;
?case 3:
?case 2:
?case 1:
? ? ? ? ? ? grade = "Fail";
? ? ? ? ? ? break;
?default:
? ? ? ? ? ? ?grade = "Fail";
?}

Dart

同上

For-loops

Java

?for (int i = 1; i <= 10 ; i++) { }
?for (int i = 1; i < 10 ; i++) { }
?for (int i = 10; i >= 0 ; i--) { }
?for (int i = 1; i <= 10 ; i+=2) { }
?for (int i = 10; i >= 0 ; i-=2) { }
?for (String item : collection) { }
?for (Map.Entry entry: map.entrySet()) { }

Dart

for (int i = 1; i <= 10 ; i++) { }
for (int i = 1; i < 10 ; i++) { } ?
for (int i = 10; i >= 0 ; i--) { } ?
for (int i = 1; i <= 10 ; i+=2) { }? ?
for (int i = 10; i >= 0 ; i-=2) { }?
for (String item in collection) { }? OR?collection.forEach((item)=>print(item));
map.forEach((k, v) {
? ? print(' $k and? $v');
});

Collections

Java

final List listOfNumber = Arrays.asList(1, 2, 3, 4);
final Map keyValue = new HashMap();
? ? ? ? ? ? ? ? ? map.put(1, "Amit");
? ? ? ? ? ? ? ? ? map.put(2, "Ali");
? ? ? ? ? ? ? ? ? map.put(3, "Mindorks");
?// Java 9
final List listOfNumber = List.of(1, 2, 3, 4);
final Map keyValue = Map.of(1, "Amit", 2, "Ali", 3, "Mindorks");

Dart

final List listOfNumber = [1, 2, 3, 4];
final Map keyValue = Map();
keyValue[1]="Amit";
keyValue[2]="Ali";
keyValue[3]="Mindorks";

Splitting arrays

Java

String[] splits = "param=car".split("=");
String param = splits[0];
String value = splits[1];

Dart

var splits = "param=car".split('=');
String param = splits[0];?
String value = splits[1];

Defining methods

Java

void doSomething() {
?// logic here
?}
int? getInt(){
? ? ? ? return 2
}

Dart

同上 OR
int? getInt() => 2

Constructors

Java

public class Utils {
? ? private Utils() {
? ? ? ? ? ? // This utility class is not publicly instantiable
? ? }
? ? public static int getScore(int value) {
? ? ? ? ? ? ?return 2 * value;
? ? ?}
?}

Dart

class Utils {? ? ?
? ? ? Utils() {? ? ? ? ? ? ?
? ? ? ? ?// This utility class is not publicly instantiable? ? ?
? ? ? ? }? ? ?
? ? ? static int getScore(int value) {? ? ? ? ? ? ?
? ? ? ? ? ?return 2 * value; ? ?
? ? ? }
?}

Dart中有沒有C++或Java中表示訪問權(quán)限的private卓起、public關(guān)鍵字
凡以“_”(下劃線)開頭的符號(變量稀余、類成艘、函數(shù)等等)都是包內(nèi)可見的,否則是包內(nèi)外都可見的

Defining uninitialized objects

Java

Person person;

Dart

var person;

Enum

Java

public enum Direction {?
? ? ? A,B,C
}

Dart

enum Direction { A,B,C }

Sorting List

Java

List profiles = loadProfiles(context);
Collections.sort(profiles, new Comparator() {
? ? ?@Override
? ? ?public int compare(Profile profile1, Profile profile2) {
? ? ? ? ? ? ? ? ?if (profile1.getAge() > profile2.getAge()) return 1;
? ? ? ? ? ? ? ? ?if (profile1.getAge() < profile2.getAge()) return -1;
? ? ? ? ? ? ? ? ?return 0;
? ? ? ? }
});

Dart

List?profiles = loadProfiles(context);?
profiles.sort((a , b)=>a.age.compareTo(b.age));

總結(jié)

整體比較下來义起,還是特別容易學(xué)的,基本一致师崎。有任何問題默终,歡迎留言一起探討。

鳴謝:
from java to kotlin

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市齐蔽,隨后出現(xiàn)的幾起案子两疚,更是在濱河造成了極大的恐慌,老刑警劉巖含滴,帶你破解...
    沈念sama閱讀 211,884評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件诱渤,死亡現(xiàn)場離奇詭異,居然都是意外死亡谈况,警方通過查閱死者的電腦和手機勺美,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,347評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來鸦做,“玉大人励烦,你說我怎么就攤上這事∑糜眨” “怎么了坛掠?”我有些...
    開封第一講書人閱讀 157,435評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長治筒。 經(jīng)常有香客問我屉栓,道長,這世上最難降的妖魔是什么耸袜? 我笑而不...
    開封第一講書人閱讀 56,509評論 1 284
  • 正文 為了忘掉前任友多,我火速辦了婚禮,結(jié)果婚禮上堤框,老公的妹妹穿的比我還像新娘域滥。我一直安慰自己,他們只是感情好蜈抓,可當我...
    茶點故事閱讀 65,611評論 6 386
  • 文/花漫 我一把揭開白布启绰。 她就那樣靜靜地躺著,像睡著了一般沟使。 火紅的嫁衣襯著肌膚如雪委可。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,837評論 1 290
  • 那天腊嗡,我揣著相機與錄音着倾,去河邊找鬼。 笑死燕少,一個胖子當著我的面吹牛卡者,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播棺亭,決...
    沈念sama閱讀 38,987評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼虎眨,長吁一口氣:“原來是場噩夢啊……” “哼蟋软!你這毒婦竟也來了镶摘?” 一聲冷哼從身側(cè)響起嗽桩,我...
    開封第一講書人閱讀 37,730評論 0 267
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎凄敢,沒想到半個月后碌冶,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,194評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡涝缝,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,525評論 2 327
  • 正文 我和宋清朗相戀三年扑庞,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片拒逮。...
    茶點故事閱讀 38,664評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡罐氨,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出滩援,到底是詐尸還是另有隱情栅隐,我是刑警寧澤,帶...
    沈念sama閱讀 34,334評論 4 330
  • 正文 年R本政府宣布玩徊,位于F島的核電站租悄,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏恩袱。R本人自食惡果不足惜泣棋,卻給世界環(huán)境...
    茶點故事閱讀 39,944評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望畔塔。 院中可真熱鬧潭辈,春花似錦、人聲如沸澈吨。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,764評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽棚辽。三九已至技竟,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間屈藐,已是汗流浹背榔组。 一陣腳步聲響...
    開封第一講書人閱讀 31,997評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留联逻,地道東北人搓扯。 一個月前我還...
    沈念sama閱讀 46,389評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像包归,于是被迫代替她去往敵國和親锨推。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,554評論 2 349

推薦閱讀更多精彩內(nèi)容