【问题标题】:fetch value based on arguments passed to object根据传递给对象的参数获取值
【发布时间】:2015-11-11 17:55:39
【问题描述】:

我有一个场景,我必须根据参数中传递的值返回值。这是我的代码。

package p_java_works;
public class city_if {
    public String a, b, c, d, z;
    String Method1(String aa, String bb, String cc) {
        a = aa;
        b = bb;
        c = cc;
        d = "USA";
        if (c == d) {
            return a;
        } else {
            return null;
        }
    }
    public static void main(String[] args) {
        city_if x = new city_if();
        String t = x.Method1("chris", "NY", "USA");

        city_if y = new city_if();
        String t1 = y.Method1("neil", "LND", "UK");
        System.out.println(t);
        System.out.println(t1);
    }
}

输出: 克里斯 空

输出返回 NULL。我应该只得到来自美国的记录,这里的其他记录,即英国不应该在输出屏幕中返回。提前致谢。

【问题讨论】:

  • 为什么不应该打印null?如果t1 为空,那么执行 System.out.println(t1); 时你期望会发生什么
  • 附注:您应该真正了解代码样式约定/实践。
  • 是的,我不知道在 else 部分该给出什么。那就是y给了一些值为null。请为我的代码提供一个替代解决方案。

标签: java arrays core


【解决方案1】:

当您应该使用 .equals() 方法时,您正在将 String 与 == 运算符进行比较。

c 将永远等于 cc 如果它们引用内存中的相同字符串。

【讨论】:

  • 即使我使用 .equals 我希望代码返回传递的名称。所以对于不相等的记录,它会获取一个空值并返回它,这是我不想要的输出。我只想要美国的成员。
  • 那么你要么需要重组你的代码来实现这个@KannanRadhakrishnan,要么问另一个与这个问题有关的问题
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-03-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多