2017-11-05 19 views
1

오류를 수정하는 데 도움을주십시오. 오류를 이해하고 해결하도록 안내해주십시오.groovy의 list.each를 사용하는 모든 값 대신 마지막 값이 출력됩니다

자산 이름 : 노트북 자산 번호 : 자산 모델 : 파빌리온 노트북 할당 된 날짜 : 28/08/2017 가격 : 당신이 (예/아니오)를 계속 하시겠습니까 예

자산 이름 : 스피커 자산 번호 : 자산 모델 : 5.1 할당 된 날짜 : 2017년 12월 7일 가격 : 는 계속 하시겠습니까 (예/아니오) 없음

Asset.No : 1 | 이름 : 노트북 | 모델 : Pavilion Notebook | 최종 할당 날짜 : 28-08-2017 | 가격 : 62000.0

자산 번호 : 2 | 이름 : 발표자 | 모델 : 5.1 | 최종 할당 날짜 : 12-07-2017 | 가격 : 12000.0

class Main 
{ 
    static void main(String[] args) 
    { 
     Asset asset = new Asset() 
     List list = new ArrayList() 
     BufferedReader br = new BufferedReader(new InputStreamReader(System.in)) 
     String userInput = "Yes" 
     while(userInput.equalsIgnoreCase("Yes")) 
     { 
      println "Asset name:" 
      asset.name = br.readLine() 
      println "Asset number:" 
      asset.assetNumber = Integer.parseInt(br.readLine()) 
      println "Asset model:" 
      asset.model = br.readLine() 
      println "Assigned date:" 
      asset.lastAssignedDate = Date.parse("dd/MM/yyyy", br.readLine()) 
      println "Price:" 
      asset.price = Double.parseDouble(br.readLine()) 
      list.add(asset) 
      println "Do you want to continue?(Yes/No)" 
      userInput = br.readLine() 
     } 
     list.each 
     { 
      println it 
     } 
    } 
} 

class Asset 
{ 
    def name 
    def assetNumber 
    def model 
    def lastAssignedDate 
    def price 

    String toString() 
    { 
     sprintf "Asset.No : "+assetNumber+" | Name : "+name+"| Model : "+model+" | Last Assigned Date : "+lastAssignedDate.format("dd-MM-yyyy")+" | Price : "+price.round(2) 

    } 
} 

답변

1

오류 설명이 잘못되었습니다. 값을 같은 asset에 저장하고 목록에 계속 추가하십시오. 따라서 귀하의 목록에는 마지막 자산 인 "입력 시간"이 포함됩니다. 루프를 수정하려면 def asset = new Asset()을 이동하십시오.

+0

도움을 주셔서 감사합니다. –