Java-关键值决策
将以下业务规则存储在文件中,以便将其应用于作为键的输入值的最佳方式是什么Java-关键值决策,java,Java,将以下业务规则存储在文件中,以便将其应用于作为键的输入值的最佳方式是什么 Key-INDIA; Value-Delhi. Key-Australia; Value-Canberra. Key-Germany, Value-Berlin. 一种解决方案:-Xml <Countries> <India>Delhi</India> <Australia>Canberra</Australia> <Germany>Be
Key-INDIA; Value-Delhi.
Key-Australia; Value-Canberra.
Key-Germany, Value-Berlin.
一种解决方案:-Xml
<Countries>
<India>Delhi</India>
<Australia>Canberra</Australia>
<Germany>Berlin</Germany>
</Countries>
德里
堪培拉
柏林
因为规则的数量将大于1000;使用Map实现它是不可能的
问候,,
Shreyas.使用
java.util.Properties
从文件中写入和读取:
Properties p = new Properties();
p.setProperty("Australia", "Canberra");
p.setProperty("Germany", "Berlin");
File f = new File("my.properties");
FileOutputStream fos = new FileOutputStream(f);
p.store(fos, "my properties");
使用
p.load()
从文件中读取它们,并在加载后使用p.getProperty()
查询它们。使用java.util.Properties
从文件中写入和读取:
Properties p = new Properties();
p.setProperty("Australia", "Canberra");
p.setProperty("Germany", "Berlin");
File f = new File("my.properties");
FileOutputStream fos = new FileOutputStream(f);
p.store(fos, "my properties");
使用
p.load()
从文件中读取它们,并在加载后使用p.getProperty()
查询它们。使用.properties
文件并将它们存储在键值对中
India=Delhi.
Australia=Canberra.
Germany=Berlin.
并使用java.util.Properties
按照hmjd的指示读取该文件
例如:
Properties prop = new Properties();
try {
//load a properties file
prop.load(new FileInputStream("countries.properties"));
//get the property value and print it out
System.out.println(prop.getProperty("India"));
System.out.println(prop.getProperty("Australia"));
System.out.println(prop.getProperty("Germany"));
} catch (IOException ex) {
ex.printStackTrace();
}
使用
.properties
文件并将它们存储在键值对中
India=Delhi.
Australia=Canberra.
Germany=Berlin.
并使用java.util.Properties
按照hmjd的指示读取该文件
例如:
Properties prop = new Properties();
try {
//load a properties file
prop.load(new FileInputStream("countries.properties"));
//get the property value and print it out
System.out.println(prop.getProperty("India"));
System.out.println(prop.getProperty("Australia"));
System.out.println(prop.getProperty("Germany"));
} catch (IOException ex) {
ex.printStackTrace();
}
创建属性文件(如file.properties):
然后在代码中:
public static void main(String[] args) {
Properties prop = new Properties();
try {
prop.load(new FileInputStream("file.properties"));
String value= prop.getProperty("INDIA");
...
} catch (Exception e) {
}
}
创建属性文件(如file.properties):
然后在代码中:
public static void main(String[] args) {
Properties prop = new Properties();
try {
prop.load(new FileInputStream("file.properties"));
String value= prop.getProperty("INDIA");
...
} catch (Exception e) {
}
}
你看过吗?这样,您就可以在配置中创建一个映射,并存储每个键的对象定义。e、 g
<map>
<entry key="India" value="Delhi">
</map>
您谈论的是业务规则,但目前您只是存储一个键/值对。如果这些规则变得更加复杂,那么简单的键/值对就不够了。所以,也许你需要一些类似的东西:
Map<String, Country>
Map
在您的代码中,“国家”是一个带有(目前)首都的对象,但在将来它将包含(比如)位置、国际电话号码前缀或税收规则等。在春季,它类似于:
<map>
<entry key="India" ref="india"/>
</map>
<!-- create a subclass of Country -->
<bean id="india" class="com.example.India">
我意识到这比这里的其他建议要复杂得多。然而,由于您正在谈论规则,我怀疑您将寻求配置/定义某种行为。您可以使用属性(或类似的属性)来实现这一点,但最终可能会为规则的不同行为方面设置不同的属性集。这很快就变成了一场真正的维护噩梦。你看过吗?这样,您就可以在配置中创建一个映射,并存储每个键的对象定义。e、 g
<map>
<entry key="India" value="Delhi">
</map>
您谈论的是业务规则,但目前您只是存储一个键/值对。如果这些规则变得更加复杂,那么简单的键/值对就不够了。所以,也许你需要一些类似的东西:
Map<String, Country>
Map
在您的代码中,“国家”是一个带有(目前)首都的对象,但在将来它将包含(比如)位置、国际电话号码前缀或税收规则等。在春季,它类似于:
<map>
<entry key="India" ref="india"/>
</map>
<!-- create a subclass of Country -->
<bean id="india" class="com.example.India">
我意识到这比这里的其他建议要复杂得多。然而,由于您正在谈论规则,我怀疑您将寻求配置/定义某种行为。您可以使用属性(或类似的属性)来实现这一点,但最终可能会为规则的不同行为方面设置不同的属性集。这很快就会成为一个真正的维护噩梦。使用.properties文件并将它们存储在键值对中。使用下面建议的属性就可以了。但与您自己的注释不同的是,您将在以后使用映射在内存中访问它(例如java.util.HashMap)。使用.properties文件并将它们存储在键值对中。使用下面建议的属性就可以了。但与您自己的评论不同的是,您将使用一个映射来访问它(例如java.util.HashMap),我承认这是一个更复杂的解决方案。但是(正如我强调的)他需要定义业务规则,并且只有最简单的业务规则才能在属性文件中指定。我承认这是一个更复杂的解决方案。但是(正如我强调的)他需要定义业务规则,并且在属性文件中只能指定最简单的业务规则。