2011-06-02 209 views
0

我正在创建一个允许用户输入客户详细信息的程序。当他们保存每个客户记录时,可以选择添加其他信息。我无法在我的追加类中获取保存文件的名称。我需要文件名,以便将附加信息保存到为客户创建的相同文件中。如何将文件名从一个文件传递到另一个文件。如何将信息从一个类传递到另一个类

File FName = fileChooser.getSelectedFile(); 
     String name = FName.getName(); 

public String getname() { return name; } 

这段代码在我的客户类中如何在我的append类中获取此信息?

+1

这与[JavaScript](http://stackoverflow.com/tags/javascript/info)有什么关系? – 2011-06-02 12:56:26

回答

1

可能是这样的:

Customer customer = new Customer(); 
// do some stuff with your customer object, including initiating the File and saving its name to a String field called name 
Append append = new Append(); 
append.foo(customer.getName()); // passes the name of the file to the foo method of class Append 

这是假设你只需要在一个方法的文件名(尽管你可以将它保存到一个字段作为方法foo()的一部分)。你需要在类Append中实现一个方法foo(String name)

另一种办法是把它作为追加的构造方法:

Append append = new Append(customer.getName()); 
append.foo(); 

对于这一点,你需要实现类追加构造Append(String name)

+0

+1 append append = new Append(customer.getName()); append.foo(); – Speck 2011-06-02 13:56:43

0

有几种方法可以做到这一点,具体取决于你正在尝试做什么。

  1. 给追加类Customer类
  2. 的成员变量有附加类的构造函数采取任何会指客户,如姓名的字符串或客户对象的参数,因为这就是Java
0

你的问题并不完全清楚,我,但这里是你可能会遇到一个问题,根据您的描述:

  • 什么的getName()应该返回时,网络的名称le,还是这个人的名字?如果它应该返回文件名,那么使用getFileName()来代替 - 它更清晰!

我不明白为什么你需要一个Append类。就我个人而言,我会处理附加客户类中的其他信息。我会做,所以每一个值添加或更改时间,相关信息被保存回到类似于文件:

class Customer { 
    public void setForename(String forename) { 
     this.forename = forename; 
     save(); 
    } 
    public void setSurname(String surname) { 
     this.surname = surname; 
     save(); 
    } 
    public void save() { 
     // clear file 
     // add new content 
     String fileContents = "forename="+forname+"&surname="+surname; 
     // save to file 
    } 

也许我不理解你的需求,虽然正确...

+0

我同意。与客户相关的附加信息应作为客户对象的属性进行存储。这可以像字符串一样简单,或者像append类一样复杂(append并不是很具描述性)。 – Heathen 2011-06-02 13:56:42

0

除了DeadPassive将附加信息与客户对象相关联的答案之外:

保存客户数据不属于客户类别。持久化数据的逻辑属于与处理问题域的代码相关的单独层。控制器或服务类似乎是放置持久性逻辑的更合适的地方。

相关问题