2014-11-09 3 views
0

Product 및 Stock의 두 클래스로 프로젝트를 만들었습니다. 이제 제 2 클래스와 상호 작용할 수있는 세 번째 클래스 인 "메뉴"를 만들었습니다.자바 객체를 문자열로 구문 분석

showInputDialog와 함께 JOptionPane을 사용하고 있습니다. 자체 생성 된 클래스에서 "Product"유형에 대한 입력을 받고 싶습니다.

나는 정수로 입력 (문자열)을 파싱하는 방법이 있다는 것을 알고있다.

int keuze = Integer.parseInt(input); 

그래서이 방법을 찾고 있습니다.

private void addNewProductType() 
    { 
     String input = JOptionPane.showInputDialog("Which product do you want to add?\n"); 
     stock.addNewProduct(input); 

    } 

답변

0

아니요. 코드 Integer.parseInt()을 살펴보면 문자열을 정수로 변환하는 작업이 수행된다는 것을 알 수 있습니다. 직접 작성해야합니다 : 메서드를 에서 생성하는 Product 클래스에 작성하십시오.

리플렉션을 사용하여 JSON을 객체로 변환하는 범용 라이브러리가 있지만 String 입력이 올바른 형식이어야하며 이는 애플리케이션에 다소 비중있게 들립니다.

0

Object 양식을 작성하는 기본 방법은 string이므로이 작업은 클래스마다 다릅니다. 개체 필드의 String을 파싱하고 할당하여이 동작을 직접 정의해야합니다. 예를 들어

, 당신과 같이 클래스 Product이있는 경우 :

Product addNewProduct(String str) { 
    String name; 
    int id; 

    // parse the String to get name and id 
    // e.g. if str = "Ball 352", isolate "Ball" and "352" and 
    // use parseInt() on "352" to get the id 

    return new Product(name, id); 

} 
:

class Product { 
    String name; 
    int id; 

    public Product(String name, int id) { 
     this.name = name; 
     this.id = id; 
    } 
} 

addNewProduct() 기능과 같을 것이다

관련 문제