2012-07-11 53 views
-2

如何在此課程中添加Animal.class。它在eclipse上給出了編譯時錯誤。如何在java程序中添加.class?

上點擊

mapper.readValue(jsonInput, Animal.class); 

日食要求配置構建路徑。如何在test2軟件包中擁有所有類。

import org.codehaus.jackson.map.ObjectMapper; 
import test2.*; 
    public class Foo 
    { 
     static String jsonInput = 
      "{\"type\":\"dog\",\"name\":\"Spike\"}"; 

     public static void main(String[] args) throws Exception 
     { 
     ObjectMapper mapper = new ObjectMapper(); 
     Animal animal = mapper.readValue(jsonInput, Animal.class); 
     System.out.println(mapper.writeValueAsString(animal)); 
     } 
    } 


class Animal 
{ 
    public String type; 
    public String name; 
} 
+2

什麼是錯誤?如果我拿你的代碼並刪除'ObjectMapper'引用,並且只有'Animal animal = new Animal()',那麼它就可以工作。您的問題似乎與'Animal'無關,但也許與'ObjectMapper'有關...... – 2012-07-11 05:09:29

+0

不確定在使用前是否導入了org.codehaus.jackson.map.ObjectMapper。 – nhahtdh 2012-07-11 05:13:59

+0

@nhahtdh我已經導入。 – 2012-07-11 10:04:59

回答

-4

爲什麼你不試試importing'動物'類。

0

首先,確保您已正確導入傑克遜的映射器。 (new ObjectMapper()的成功編譯)

嘗試將Animal定義到單獨的.java文件中,然後映射器應該瞭解您想要執行的操作。

希望這會有幫助

+0

它一切運作良好,但如何在java中使用.class – 2012-07-11 05:47:39

+0

'Animal'不是**定義爲子類或內部類。它只是一個與'Foo'相同的文件中定義的非公共類。它將被編譯成Animal.class。 – 2012-07-11 06:21:57

+0

一個好的做法是使用Animal的一個實例作爲模型,而不是直接嘗試訪問.class。我在傑克遜的文檔中看到,你也可以使用一個實例,它應該工作得更好,或者至少看起來更好:) – 2012-07-11 06:25:29

0

您正在使用ObjectMapper,它不在jdk中。 爲了使用這種添加扶養罐子, 你的情況**依賴meight缺少**

如果使用maven項目添加下列從 jackson-mapper-asl Link在pom.xml中進入

<dependency> 
    <groupId>org.codehaus.jackson</groupId> 
    <artifactId>jackson-mapper-asl</artifactId> 
    <version>0.9.7</version> 
</dependency> 

或下載JAR和Jackson0.7 jar Link

相關問題