在C#中,你可以做Java中是否有類似JSON的對象?
var cat=new {amount=4,sound="mouw",food="fish"};
然後你做
print("My cat ate "+cat.food+" "+cat.amount+"es");
然後將打印
My cat ate 4 fishes
有一些很酷的東西像這個Java?
在C#中,你可以做Java中是否有類似JSON的對象?
var cat=new {amount=4,sound="mouw",food="fish"};
然後你做
print("My cat ate "+cat.food+" "+cat.amount+"es");
然後將打印
My cat ate 4 fishes
有一些很酷的東西像這個Java?
我認爲你要找的是對象。您可以定義他們自己,例如,
class Cat {
int amount;
String sound;
String food;
Cat(int amount, String sound, String food) {
this.amount = amount;
this.sound = sound;
this.food = food;
}
}
然後有一個主類,
public class Main {
public static void main(String[] args) {
Cat cat = new Cat(4, "mouw", "fish");
System.out.println("My cat ate " + cat.amount + " " + cat.amount + "es");
}
}
這裏是一個很好的資源,讓你開始:
Project Valhalla將引入Value Types給朗uage,但我們在Java 9中不會得到這個。既然你使用了var關鍵字,我也想參考JEP-286關於局部變量類型推斷。這些都不是在Java中可用的。
也許我錯誤地解釋了你的問題,你只是在尋找簡單的舊Java對象,那麼user123的答案將幫助你。
它不是真的像一個JSON對象,但是在Java中你可以使用枚舉或類來完成你想要做的事情。舉例來說,做這樣的事情:
public enum Cat{
String food = "fish";
String amount = "5";
}
然後像在您的示例:
System.out.println("My cat ate "+Cat.food+" "+Cat.amount+"es");
或者你可以使用一個類,做一些類似完成同樣的事情(這可能會是一個的東西更好的主意)。
這可能是一個接近的做法。 Java沒有var類型,所以可能沒有辦法做到這一點。 – bakoma
謝謝你回答我的問題。爲每個人定義一個命名類是很麻煩的。如果在方法中需要使用100個對象,爲它們中的每一個定義一個類並不是最好的主意,儘管它是可行的(在bean模式中)。我猜Java缺乏這種能力。 – bakoma
使用您提供的動物示例,我會查看抽象類:https://docs.oracle.com/javase/tutorial/java/IandI/abstract.html 這將有助於減少您需要的代碼量來寫。 – user123