java - 翻译中抽象类的专业用法

标签 java oop class jakarta-ee abstract-class

下面的代码没有给我想要的答案,我不知道问题出在哪里? FR 是 EN 的翻译(与 .properties 文件完全相同) 我想从 FR.java 文件中读取翻译,如果 我想从index.jsp页面访问fr.java或en.java的hello变量。但我编写的代码给了我 Lang.java 的值

String language = "FR";

条件位于 .jsp 文件中 jdk 1.4 给了我这个错误:Error(23,23): 变量 lang 可能尚未初始化

任何机构都可以提供帮助,请提供代码吗?

文件名Lang.java

package mypackage;

abstract public class Lang {
  public String hello= "home page";
}

文件名 EN.java

package mypackage;

public class EN extends Lang {
  public String hello = "hello";
}

文件名 FR.java

package mypackage;

public class FR extends Lang {
  public String hello = "bonjour";
}

文件名:index.jsp

<%@ page contentType="text/html;charset=windows-1252"%>
<%@ page import="mypackage.Lang" %>
<%@ page import="mypackage.FR" %>
<%@ page import="mypackage.EN" %>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">

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

最佳答案

按如下方式更改条件:

if (language.equals("FR")){
    lang = new FR();
}
// add more languages here
// example:
// else if (language.equals("DE")) {
//     lang = new DE();
// }
else {
    lang = new EN();
}

关于java - 翻译中抽象类的专业用法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3759950/

相关文章:

PHPUnit 模拟对象问题

CSS - 在类中设置多个 id

java - 如何在 Java 中将 byte[] 数组中的原始字节内容打印到标准输出?

python - 在类中定义变量

java - 对象/实例问题?

ios - 如何设置我的 UISlider 和 UISwitch 的初始值?

java - A类实例化B类实例。 ClassB 的实例如何调用 A 类的方法?

java - 在java 2d中绘制复杂的生成图像

java - 应用程序在加载 xml 布局文件的主线程中做太多工作

Java - SimpleDateFormat 作为数据类型?