미국 주식 불러와서 조회하는 플러그인 인데

시가총액이 안 나와있는 주식들은 조회하면


[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 저게 문젠거 같아서 보니까


public static String sigFigNumber(double input) {
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);
}

위에 다른 놈이랑 같이 빨간 표시 한 부분이 에러 뜨는데


이거 어떻게 고쳐야

널 들어오면 언노운 주게 할 수 있을까??


혹시 몰라서

https://github.com/maldahleh/stock-market/blob/master/src/main/java/com/maldahleh/stockmarket/utils/Utils.java

저 부분 깃허브 주소도 적어놓음..



자바를 하나도 몰라서

이리저리 수정해봐도 오류만 뜨고 되는게 없다 시발..