Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java中特殊条件下的对象定义_Java_Oop_Jsp_Class_Jakarta Ee - Fatal编程技术网

java中特殊条件下的对象定义

java中特殊条件下的对象定义,java,oop,jsp,class,jakarta-ee,Java,Oop,Jsp,Class,Jakarta Ee,我想在代码中使用lang变量,并在if命令中给出值。 在.jsp页面中是否可以使用以下代码 <% String language = "EN"; EN lang; if (language.equals("EN")){ lang = new EN(); } else if (language.equals("FR")){ lang = new FR(); } %> // html ... <% out.print(lang.variabl

我想在代码中使用lang变量,并在
if
命令中给出值。 在.jsp页面中是否可以使用以下代码

<%
  String language = "EN";
  EN lang;
  if (language.equals("EN")){
    lang = new EN();
  }
  else if (language.equals("FR")){
    lang = new FR();
  }
%>
// html ...
<% out.print(lang.variable1); %>

请输入代码?

EN
FR
是从公共接口还是抽象类派生的?如果是,您可以更改
EN lang
语言。如果没有,您可以开始考虑重构类。一个丑陋的解决方案是使用
对象语言

EN
FR
是从公共接口还是抽象类派生的?如果是,您可以更改
EN lang
语言。如果没有,您可以开始考虑重构类。一个丑陋的解决方案是使用
对象语言

lang=新FR()

您正在将FR类型的对象分配给EN类型的lang,这显然是错误的

lang=新FR()


您正在将FR类型的对象分配给EN类型的lang,这显然是错误的。

您的代码应该如下所示:

interface Lang {

}

class EN implements Lang {

}

class FR implements Lang {

}

<%
  String language = "EN";
  Lang lang;
  if (language.equals("EN")){
    lang = new EN();
  }
  else if (language.equals("FR")){
    lang = new FR();
  }
%>
接口语言{
}
类实现Lang{
}
类FR实现Lang{
}

您的代码应该如下所示:

interface Lang {

}

class EN implements Lang {

}

class FR implements Lang {

}

<%
  String language = "EN";
  Lang lang;
  if (language.equals("EN")){
    lang = new EN();
  }
  else if (language.equals("FR")){
    lang = new FR();
  }
%>
接口语言{
}
类实现Lang{
}
类FR实现Lang{
}

与其将
lang
声明为
EN
,不如将其声明为
EN
FR
超类的实例(可能是
lang
?)

与其将
lang
声明为
EN
,不如将其声明为
EN
FR
超类的实例(可能是
Lang
?)

否,它们是包中的一个类。你的意思是我必须将EN和FR定义为接口或抽象?你能帮我编写代码吗?我如何访问EN或FR类中的变量。Jaydeep代码返回接口变量值。否,它们是包中的一个类。你的意思是我必须将EN和FR定义为接口或抽象?你能吗请帮助我编写代码?我如何访问EN或FR类内的变量。Jaydeep代码返回接口变量值。EN是英语资源束类?!FR是法国?!EN是英语资源束类?!FR是法国?!我如何访问EN或FR类内的变量?你的另一个问题有我的answer如何访问EN或FR类中的变量?您的另一个问题有我的答案