import java.nio.charset.Charsets
,但是当我使用javac(jdk6)编译此类错误时。例如:
javac UriCodec.java
错误代码:
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 :(得分:10)
没有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),你应该为那个类添加一个导入。