Java 为什么字符串返回布尔可测试值?

Java 为什么字符串返回布尔可测试值?,java,string,boolean,Java,String,Boolean,当我键入语句时: String population_construction_str = "some externally set value"; int answer_counter = 0; answer_counter = population_construction_str > 6 ? 2 : 1; 我得到了一个有用的结果(这显然总是正确的)。 我知道我的错误是什么。我需要得到字符串的长度,以使其符合预期。但在此之前,我得到的值显然大于6 我的问题是:这个大于6的字符串返

当我键入语句时:

String population_construction_str = "some externally set value";
int answer_counter = 0;  
answer_counter = population_construction_str > 6 ? 2 : 1;
我得到了一个有用的结果(这显然总是正确的)。 我知道我的错误是什么。我需要得到字符串的长度,以使其符合预期。但在此之前,我得到的值显然大于6

我的问题是:这个大于6的字符串返回了什么?它返回的值是否总是大于6?为什么我的编译器没有返回错误?知道以这种方式查询字符串时返回的内容有用吗


我希望这个问题不是太开放,对我来说,以这种方式查询字符串时,只需大致了解字符串返回的内容以及为什么返回就足够了。谢谢。

该字符串没有返回任何内容。事实上,正如@ZouZou所提到的,它给出了这个错误“
运算符>对于参数类型字符串int未定义”,甚至不会编译。请检查这一点,如果上面发布的代码没有出现编译器错误,我们都想知道您正在使用的java版本和IDE(如果有的话)。

该字符串没有返回任何内容。事实上,正如@ZouZou所提到的,它给出了这个错误“
运算符>对于参数类型字符串int未定义”,甚至不会编译。请检查这一点,如果上面发布的代码没有出现编译器错误,我们都想知道您正在使用的java版本和IDE(如果有)。

您的代码将显示编译错误

试着

answer_counter = population_construction_str.length() > 6 ? 2 : 1;

您的代码将显示编译错误

试着

answer_counter = population_construction_str.length() > 6 ? 2 : 1;

它应该产生一个编译错误。你的问题是如何将字符串转换为int吗?它应该产生一个编译错误。你的问题是如何将字符串转换为int吗?这确实很有趣。我使用的是Java的一个专有派生版本,我有时会忘记它实际上不是Java。有时它会做一些真正出乎意料的事情,显然,在这种情况下,编译器错误是其中之一。我想我需要向一位工程师提出这个问题,这位工程师制造了这种疯狂的语言(如果我能找到他们的话)。感谢您的关注,我希望我没有浪费任何人的时间。‘Java的专有派生’-尼斯:)这真的很有趣。我使用的是Java的一个专有派生版本,我有时会忘记它实际上不是Java。有时它会做一些真正出乎意料的事情,显然,在这种情况下,编译器错误是其中之一。我想我需要向一位工程师提出这个问题,这位工程师制造了这种疯狂的语言(如果我能找到他们的话)。感谢您的关注,我希望我没有浪费任何人的时间。‘Java的专有派生’-尼斯:)