如何在Java中转换字符串到CharSequence ?
当前回答
这是个好问题!如果您调用了使用泛型的API,并希望使用泛型类型的不同子类型赋值或返回结果,则可能会遇到麻烦。Java 8有助于转换:
List<String> input = new LinkedList<>(Arrays.asList("a", "b", "c"));
List<CharSequence> result;
// result = input; // <-- Type mismatch: cannot convert from List<String> to List<CharSequence>
result = input.stream().collect(Collectors.toList());
System.out.println(result);
其他回答
你可以使用
CharSequence[] cs = String[] {"String to CharSequence"};
直接的答案:
String s = "Hello World!";
// String => CharSequence conversion:
CharSequence cs = s; // String is already a CharSequence
CharSequence是一个接口,String类实现了CharSequence。
这是个好问题!如果您调用了使用泛型的API,并希望使用泛型类型的不同子类型赋值或返回结果,则可能会遇到麻烦。Java 8有助于转换:
List<String> input = new LinkedList<>(Arrays.asList("a", "b", "c"));
List<CharSequence> result;
// result = input; // <-- Type mismatch: cannot convert from List<String> to List<CharSequence>
result = input.stream().collect(Collectors.toList());
System.out.println(result);
CharSequence是一个接口,而String是它的实现之一,而不是StringBuilder、StringBuffer和许多其他实现。
所以,就像你使用InterfaceName i = new ItsImplementation(),你可以使用CharSequence cs = new String(" String ")或简单的CharSequence cs = " String ";
由于String是- a CharSequence,你可以在任何需要CharSequence的地方传递一个String,或者将一个String赋值给一个CharSequence:
CharSequence cs = "string";
String s = cs.toString();
foo(s); // prints "string"
public void foo(CharSequence cs) {
System.out.println(cs);
}
如果你想把一个CharSequence转换成一个String,只需使用toString方法,这个方法必须由CharSequence的每个具体实现实现。
推荐文章
- 如何减去X天从一个日期对象在Java?
- Java标识符中的“连接字符”是什么?
- 一对多、多对一、多对多的区别?
- 从枚举中选择一个随机值?
- 如何从URL获取参数与JSP
- 如何在Eclipse中生成Javadoc注释?
- 我如何在c++中创建一个随机的字母数字字符串?
- 找到java类从哪里加载
- 从集合中随机选取一个元素
- 为什么x == (x = y)和(x = y) == x不一样?
- 什么Java 8流。收集等价物可在标准Kotlin库?
- 如何使用JavaScript大写字符串中每个单词的第一个字母?
- 等待未来的名单
- 如何检查JSON键是否存在?
- 为什么MongoDB Java驱动在条件中使用随机数生成器?