2016-11-18 19 views
-4

在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?

回答

2

我認爲你要找的是對象。您可以定義他們自己,例如,

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"); 
    } 
} 

這裏是一個很好的資源,讓你開始:

+0

謝謝你回答我的問題。爲每個人定義一個命名類是很麻煩的。如果在方法中需要使用100個對象,爲它們中的每一個定義一個類並不是最好的主意,儘管它是可行的(在bean模式中)。我猜Java缺乏這種能力。 – bakoma

+0

使用您提供的動物示例,我會查看抽象類:https://docs.oracle.com/javase/tutorial/java/IandI/abstract.html 這將有助於減少您需要的代碼量來寫。 – user123

0

Project Valhalla將引入Value Types給朗uage,但我們在Java 9中不會得到這個。既然你使用了var關鍵字,我也想參考JEP-286關於局部變量類型推斷。這些都不是在Java中可用的。

也許我錯誤地解釋了你的問題,你只是在尋找簡單的舊Java對象,那麼user123的答案將幫助你。

-1

它不是真的像一個JSON對象,但是在Java中你可以使用枚舉或類來完成你想要做的事情。舉例來說,做這樣的事情:

public enum Cat{ 
    String food = "fish"; 
    String amount = "5"; 
} 

然後像在您的示例:

System.out.println("My cat ate "+Cat.food+" "+Cat.amount+"es"); 

或者你可以使用一個類,做一些類似完成同樣的事情(這可能會是一個的東西更好的主意)。

+0

這可能是一個接近的做法。 Java沒有var類型,所以可能沒有辦法做到這一點。 – bakoma

相關問題