像String这样的分配

时间:2012-02-28 02:49:58

标签: java

我最近去了Java面试,面试官问我一个我无法回答的问题。他问我如何创建一个类,其实例可以分配给String,就像字符串一样。请允许我解释一下:

假设我创建了一个类,MyClass和我创建了一个对象,比如说obj。作业应该是:

MyClass obj = "my Text";

我搜索了这类东西,却无法得到任何确切的答案。

2 个答案:

答案 0 :(得分:7)

您说“已分配给字符串”,但您的代码示例显示已分配String值。这是非常不同的事情。前者很简单:只需在toString()中编写MyClass方法即可。后者基本上是不可能的,因为String是最后一类。

关于最后一点在技术上更具体:如果查看rules for assignment conversionString值只能分配给String类型的变量或更广泛的引用类型。唯一更广泛的参考类型是ObjectCharSequenceSerializableComparable<String>。 (斯蒂芬C的帽子提示)。

答案 1 :(得分:0)

我不认为你想做什么是可能的。

表达式"my Text"相当于new String("my Text"),所以实际上你要做的是:

MyClass obj = new String("my Text");

所以MyClass必须是java.lang.String的子类,但String被声明为final,这意味着明确禁止子类化。