java方法未定义类型_java – “方法流()未定义类型Set”

我正在尝试运行我在java基本路径课程中找到的示例java程序.我想使用eclipse逐步完成它,以便更好地了解正在发生的事情. Person类很好没有错误但是MRTest类最后有一个错误,对于调用它的类型,stream()方法是未定义的.我不知道如何解决这个问题.

import java.util.List;

import java.util.ArrayList;

import java.util.Arrays;

import java.util.Comparator;

import java.util.Collection;

import java.util.function.Supplier;

import java.util.Set;

import java.util.HashSet;

import java.time.chrono.IsoChronology;

public class MRTest {

// The method transferElements copies elements from one collection to

// another

public static , DEST extends Collection>

DEST transferElements(

SOURCE sourceCollection,

Supplier collectionFactory) {

DEST result = collectionFactory.get();

for (T t : sourceCollection) {

result.add(t);

}

return result;

}

public static void main(String... args) {

List roster = Person.createRoster();

for (Person p : roster) {

p.printPerson();

}

Person[] rosterAsArray =

roster.toArray(new Person[roster.size()]);

class PersonAgeComparator

implements Comparator {

public int compare(Person a, Person b) {

return a.getBirthday().compareTo(b.getBirthday());

}

}

// Without method reference

Arrays.sort(rosterAsArray, new PersonAgeComparator());

// With lambda expression

Arrays.sort(rosterAsArray,

(Person a, Person b) -> {

return a.getBirthday().compareTo(b.getBirthday());

}

);

// With method reference

Arrays.sort(rosterAsArray, Person::compareByAge);

// Reference to an instance method of a particular object

class ComparisonProvider {

public int compareByName(Person a,

Person b) {

return a.getName().compareTo(b.getName());

}

public int compareByAge(Person a,

Person b) {

return a.getBirthday().compareTo(b.getBirthday());

}

}

ComparisonProvider myComparisonProvider = new ComparisonProvider();

Arrays.sort(rosterAsArray, myComparisonProvider::compareByName);

// Reference to an instance method

// of an arbitrary object of a particular type

String[] stringArray = { "Barbara", "James", "Mary", "John",

"Patricia", "Robert", "Michael", "Linda" };

Arrays.sort(stringArray, String::compareToIgnoreCase);

Set rosterSetLambda =

transferElements(roster, () -> { return new HashSet<>(); });

Set rosterSet = transferElements(

roster, HashSet::new);

System.out.println("Printing rosterSet:");

rosterSet.stream().forEach(p -> p.printPerson()); // This is the line that is the problem.

}

}

解决方法:

问题是您的类路径中有1.7 SE库,将其更改为1.8修复它

查看问题评论部分的详细信息

标签:java,eclipse,lambda,java-8,java-stream

来源: https://codeday.me/bug/20190528/1173414.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值