2012-06-30 60 views
-3

import java.nio.charset.Charsets在我的类UriCodec.java中,但是当我使用javac(jdk6)编译这个类的错误。例如:javac的 UriCodec.java为什么java.nio.charset.Charsets编译错误?

错误代码:

import java.nio.charset.Charsets; 
        ^
UriCodec.java:140: Can not find symbol 
symbol: Variable Charsets 
position: class com.android.exchange.utility.UriCodec 
     appendEncoded(builder, s, Charsets.UTF_8, false); 
           ^
UriCodec.java:144: Can not find symbol 
symbol: Variable Charsets 
position: class com.android.exchange.utility.UriCodec 
     appendEncoded(builder, s, Charsets.UTF_8, true); 
           ^
UriCodec.java:203: Can not find symbol 
symbol: Variable Charsets 
position: class com.android.exchange.utility.UriCodec 
     return decode(s, false, Charsets.UTF_8); 
           ^
UriCodec.java:214: Can not find symbol 
symbol: Method toHexString(byte,boolean) 
position: class java.lang.Byte 
     sb.append(Byte.toHexString(b, true)); 
        ^
5 error 

我的课:

import java.nio.charset.Charset; 
import java.nio.charset.Charsets; 
public abstract class UriCodec { 


    public final void appendEncoded(StringBuilder builder, String s) { 
     appendEncoded(builder, s, Charsets.UTF_8, false); 
    } 

    public final void appendPartiallyEncoded(StringBuilder builder, String s) { 
     appendEncoded(builder, s, Charsets.UTF_8, true); 
    } 

    public static String decode(String s) { 
     return decode(s, false, Charsets.UTF_8); 
    } 


    public final String encode(String s, Charset charset) { 
     // Guess a bit larger for encoded form 
     StringBuilder builder = new StringBuilder(s.length() + 16); 
     appendEncoded(builder, s, charset, false); 
     return builder.toString(); 
    } 
} 
+0

您能否给我们提供更多信息?你使用这个库的一些示例代码? –

+0

你得到的错误信息是什么? – fbafelipe

+4

未来,请不要在没有告诉我们*错误是*的情况下发生错误。这就像去看医生并说:“我感觉不太好,但我不会以什么方式告诉你,也不允许你检查我。” –

回答

9

有没有这样的类作为Charsets。有Charset(单数),但是这不是同样的事情...

我怀疑你有这样的消息:

UriCodec.java:1: error: cannot find symbol 
import java.nio.charset.Charsets; 
        ^
    symbol: class Charsets 
    location: package java.nio.charset 
1 error 

当你得到一个编译错误,阅读。如果编译器说它找不到符号,那么通常有一个非常好的理由 - 所以仔细检查你是否正确地拼写了正确的所有内容。

的进口改为

import java.nio.charset.Charset; 

,所有应该很好。

...或者,如果你的意思是不同的Charsets类(如the one in Guava),你应该添加一个用于进口该代替。

+0

我不认为答案是这样简单。如示例代码所示,java.nio.charset.Charset不包含“UTF_8”之类的成员。实际上你可以在一些android代码中看到这里的用法:http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/4.1.1_r1/android/nfc/NdefRecord .java – Sam

+0

@Sam:我已经编辑了答案,只是在底部添加了一些。 –

+0

够公平的。我个人试图找出从哪里可以找到并从现在开始导入这些类。 – Sam

相关问题