미국 주식 불러와서 조회하는 플러그인 인데
시가총액이 안 나와있는 주식들은 조회하면
[01:23:02] [Server thread/WARN]: [StockMarket] Task #87 for StockMarket v1.3.0 generated an exception
java.lang.NullPointerException: null
at com.maldahleh.stockmarket.inventories.lookup.LookupInventory.lambda$openInventory$0(LookupInventory.java:105) ~[?:?]
이렇게 NPE 오류가 뜸
개발자는 잠수라 업데이트도 안되고..
그나마 깃허브에 공개 되어있어서 찾아봤는데
저거 오류에 표시 된 줄은
.put("", Utils.sigFigNumber(stock.getStats().getMarketCap().doubleValue()))여기고 sigFigNumber 저게 문젠거 같아서 보니까
String suffixes = "KMBT";
if (input < 1000) {
return String.valueOf(input).replace(".0", "");
}
int exponent = (int) (Math.log(input) / Math.log(1000));
return String.format("%.1f%c", input / Math.pow(1000, exponent), suffixes.charAt(exponent - 1));
}
이거거든
얘가 null 들어오면 정신을 못차리는거 같은데
다른 애들은 보면
public static String formatSingle(BigDecimal input, String unknown, Locale locale) {if (input == null) {
return unknown;
}
return singleDecimal(input.doubleValue(), locale);
}
저렇게 앞에 인풋으로 null들어오면 언노운 주는거 같은데
쟤만 저렇거든
그래서
public static String sigFigNumber(double input, String unknown) {if (input == null) {
return unknown;
}
String suffixes = "KMBT";
if (input < 1000) {
return String.valueOf(input).replace(".0", "");
}
int exponent = (int) (Math.log(input) / Math.log(1000));
return String.format("%.1f%c", input / Math.pow(1000, exponent), suffixes.charAt(exponent - 1));
}
이렇게
복사해봤는데 저러니까
public static String formatSigFig(Long input, String unknown) {if (input == null) {
return unknown;
}
return sigFigNumber(input);
}
위에 다른 놈이랑 같이 빨간 표시 한 부분이 에러 뜨는데
이거 어떻게 고쳐야
널 들어오면 언노운 주게 할 수 있을까??
혹시 몰라서
저 부분 깃허브 주소도 적어놓음..
자바를 하나도 몰라서
이리저리 수정해봐도 오류만 뜨고 되는게 없다 시발..
별게 다있네
살려줘
자바라서인지 아무도 답을 안달아주네...
나도 잘 몰라서 조심스럽긴 한데 public static String sigFigNumber(double input, String unknown) 에서 인자 2개 넣어야 하는데 하나만 넣어서 그런거 같음. return sigFigNumber(input);을 return sigFigNumber(input, "unknown"); 처럼 바꿔보셈
그렇게 하니까 if (input == null) { 여기에 ==저게 안 맞다면서 오류나길래아예 sigFigNumber앞에 public static String formatCap(BigDecimal input, String unknown) { if (input == null) { return unknown; } return sigFigNumber(input.doubleValue()); }이거 만들어서 저기서 널오면 언노운뜨게 했음 이게 맞는건지도 몰겠고 야매로 고쳤지만작동되서 다행이다알려줘서 ㄳㄳㄳ