前提
現在二つのパッケージを用いて、コンストラクタBondの引数couponが0の時とそれ以外の時でBondTypeの文字列を分岐させることに取り組んでいます。そこでパッケージtest1のBondTypeのgetter内で分岐をするようにコードを書いたのですが、うまく分岐ができているか確認するため、パッケージtest2のBondTestでgetBondType()の部分を出力させたいのですが、出力の仕方でつまづいている状況です。
getterの出力方法についてご教授いただけないでしょうか。enum型を使うのが今回が初めてで使用方法が間違っていれば加えてご教授いただきたいです。よろしくお願い致します。
ディレクトリは下記の通りです。
Stage
・test1→・Bond.java
・Bondtype.java
・test2→・BondTest.java
実現したいこと
- package test1: getBondType()の結果をpackage test2 : BondTestファイル内で出力させる。
該当のソースコード
Bond.java
1package test1; 2 3import java.util.Objects; 4 5public class Bond { 6 private String code; 7 private String name; 8 private int maturity; 9 private double coupon; 10 private String BondType; 11 12 public Bond (String code, String name, int maturity, double coupon) { 13 this.code = code; 14 this.name = name; 15 this.maturity = maturity; 16 this.coupon = coupon; 17 // チェック処理 18 if (code == null || name == null) { 19 throw new IllegalArgumentException("nullです。"); 20 } 21 if (maturity < 20000101 || 29991231 < maturity || coupon < 0) { 22 throw new IllegalArgumentException("数値が範囲外です"); 23 } 24 } 25 //getter 26 public String getCode() { 27 return this.code; 28 } 29 public String getName() { 30 return this.name; 31 } 32 public int getMaturity() { 33 return this.maturity; 34 } 35 public double getCoupon() { 36 return this.coupon; 37 } 38 public String getBondType() { 39 if (coupon == 0) { 40 BondType.equals("ZERO_COUPON_BOND"); 41 } else { 42 BondType.equals("COUPON_BOND"); 43 } 44 return this.BondType; 45 } 46 47 @Override 48 public String toString() { 49 StringBuilder builder = new StringBuilder(); 50 builder.append(code); 51 builder.append(name); 52 builder.append(maturity); 53 builder.append(coupon); 54 builder.append(BondType); 55 return builder.toString(); 56 } 57 58 //equalsメソッド 59 @Override 60 public boolean equals (Object obj) { 61 if (this == obj) { 62 return true; 63 } 64 if (obj == null) { 65 return false; 66 } 67 if (getClass() != obj.getClass()) { 68 return false; 69 } 70 Bond other =(Bond)obj; 71 if (this.code != other.code) { 72 return false; 73 } 74 if (maturity == 0) { 75 if (other.maturity != 0) { 76 return false; 77 } 78 } else if (maturity != other.maturity) { 79 return false; 80 } 81 if (Double.compare(other.coupon,coupon) != 0) { 82 return false; 83 } 84 85 return true; 86 } 87 88 //hashCode 89 @Override 90 public int hashCode() { 91 return Objects.hash(this.code, this.maturity, this.coupon); 92 } 93}
Bondtype.java
1package test1; 2 3public enum BondType { 4 COUPON_BOND, ZERO_COUPON_BOND 5}; 6
BondTest.java
1package test2; 2 3public class BondTest { 4 public static void main (String [] args) { 5 6 test1.Bond bond3 = new test1.Bond("code", "name", 20220812, 1.0); 7 test1.BondType bondType = new test1.BondType(); 8 bondType.show(); 9 } 10}
試したこと
BondTestファイルに
・test1.BondType bondType = new test1.BondType();
bondType.show();
・System.out.println(test1.builder);
などでコンパイルしたが、シンボルが得られず出力できなかった。
回答1件
あなたの回答
tips
プレビュー