Arrays.asList(null, null, "dd")会发生什么?

本文介绍了一个简单的Java程序,演示了如何处理字符串类型的空值,并将其放入列表中进行遍历输出。通过实例展示了null值和非null值在实际操作中的表现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

public void main() {

        String a = null;

        String b = "jjj";

        String c = null;

 

       List<String> ws = Arrays.asList(a, b, c);

       for(String e : ws) {

           System.out.println(e);

       }

    }

 

print out:

 

null

jjj

null

给这个方法添加单元测试: public TdsStpResponse processAuditData(String auditTrdStatusId,String source) throws CisTStpException { CisTStpTradeData tradeData = new CisTStpTradeData(); List<TdsStpAudit> l = new ArrayList<>(); TdsStpResponse res = new TdsStpResponse(); try{ tradeData.setTradeId(Integer.parseInt(auditTrdStatusId)); tradeData.setSource(source); tradeData.setIsAudit("Y"); TradeProcessor processor = sourceFactory.getProcessor(tradeData.getSource()); List<MessageDetails> messageDetails = processor.processAuditTrade(tradeData); if(messageDetails!=null){ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-mm-dd"); for(MessageDetails details : messageDetails) { ProductType prodType =details.getMessage().getTrade().getTd().getProductType(); if(prodType!=null && "CURR_SWAP".equals(prodType.getCisProductType())){ continue; } TdsStpAudit o = new TdsStpAudit(); o.setCisTradeId(""+details.getMessage().getTrade().getTh().getCisTradeId()); o.setScbmlPackageId(""+details.getMessage().getTrade().getTh().getScbTradeId()); o.setMurexPackageId(""+details.getMessage().getTrade().getTh().getMxLinkId()); o.setTradeDate(details.getMessage().getTrade().getTh().getTradeDate().toString().substring(0,10)); if("SIP".equals(source)){ if(details!=null && details.getEventDetails()!=null){ if(details.getEventDetails().getDrawDown()!=null && details.getEventDetails().getDrawDown()){ if(details.getEventDetails().getEventData() instanceof DDeData){ DDeData d = (DDeData) details.getEventDetails().getEventData(); if(d!=null && d.getOriginalMsg()!=null){ o.setMurexPackageId(""+d.getOriginalMsg().getTrade().getTh().getMxLinkId()); if(d.getOriginalMsg().getTrade().getTh()!=null){ TradeHeader th = d.getOriginalMsg().getTrade().getTh(); o.setTradeDate(th.getTradeDate().toString().substring(0,10)); } } } } if(details.getEventDetails().getExpiry()!=null && details.getEventDetails().getExpiry()){ EXPeData d = (EXPeData) details.getEventDetails().getEventData(); if(d!=null && d.getOriginalMsg()!=null){ if(d.getOriginalMsg().getTrade()!=null){ if(d.getOriginalMsg().getTrade().getTh()!=null){ TradeHeader th = d.getOriginalMsg().getTrade().getTh(); o.setTradeDate(th.getTradeDate().toString().substring(0,10)); } } } } } } o.setCounterpartyFmId((details.getMessage().getCpFmId()==null?"":details.getMessage().getCpFmId())); o.setLegalEntity(details.getMessage().getLegalEntity()); o.setProductFullName(details.getMessage().getTrade().getTd().getProductType().getProductFullName()==null?"":details.getMessage().getTrade().getTd().getProductType().getProductFullName()); o.setCisEventName(details.getEventDetails().getRefEvent().getCisEvent()); o.setCisTradeStateName(details.getMessage().getCisState()); o.setPortfolioName(details.getMessage().getPort1Name()); o.setPortfolioName2(details.getMessage().getPort2Name()); l.add(o); } }else{ log.info("No message details skip this trade id: " + auditTrdStatusId); } }catch(Exception ex){ log.info("Skip this trade id: " + auditTrdStatusId); log.info(ex.getMessage()); } res.setTdsStpAuditList(l); return res; }
06-07
Java 8的新特性包括: 1. Lambda表达式 2. 函数式接口 3. 方法引用 4. 默认方法 5. Stream API 6. Optional类 7. 新的日期和时间API 8. Nashorn JavaScript引擎 以下是针对每个新特性的代码示例及其优势: 1. Lambda表达式 Lambda表达式是一个匿名函数,可以用更简洁的方式表示接口中的单一抽象方法,使代码更加简洁优雅。 示例代码: ```java List<String> list = Arrays.asList("apple", "banana", "orange"); list.forEach(str -> System.out.println(str)); ``` 2. 函数式接口 函数式接口是只有一个抽象方法的接口,它们可以用于Lambda表达式和方法引用。 示例代码: ```java @FunctionalInterface interface MyInterface { void myMethod(); } MyInterface obj = () -> System.out.println("Hello World"); obj.myMethod(); ``` 3. 方法引用 方法引用是一种更简洁的Lambda表达式,它允许重用已有的方法实现。 示例代码: ```java List<String> list = Arrays.asList("apple", "banana", "orange"); list.forEach(System.out::println); ``` 4. 默认方法 默认方法是一种在接口中实现的方法,它们允许在不破坏现有代码的情况下向接口添加新功能。 示例代码: ```java interface MyInterface { default void myMethod() { System.out.println("Hello World"); } } MyInterface obj = new MyInterface() {}; obj.myMethod(); ``` 5. Stream API Stream API是一种处理集合数据的新方式,它提供了一种简单易用的方式来处理过滤、映射和归约等操作。 示例代码: ```java List<Integer> list = Arrays.asList(1, 2, 3, 4, 5); int sum = list.stream() .filter(i -> i % 2 == 0) .mapToInt(Integer::intValue) .sum(); System.out.println(sum); ``` 6. Optional类 Optional类是一种用于解决空指针异常的新方式,它允许我们在不检查null值的情况下安全地访问对象。 示例代码: ```java String str = null; Optional<String> opt = Optional.ofNullable(str); if (opt.isPresent()) { System.out.println(opt.get()); } else { System.out.println("Unknown"); } ``` 7. 新的日期和时间API 新的日期和时间API提供了一种更加简单易用的方式来处理日期和时间。 示例代码: ```java LocalDate date = LocalDate.now(); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); String str = date.format(formatter); System.out.println(str); ``` 8. Nashorn JavaScript引擎 Nashorn JavaScript引擎是一种在Java中运行JavaScript代码的新方式,它允许我们在Java应用程序中轻松地嵌入JavaScript代码。 示例代码: ```java ScriptEngine engine = new ScriptEngineManager().getEngineByName("nashorn"); engine.eval("print('Hello World');"); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值