标签: java-8

Android Studio使用Java 8编译项目吗?

我正在尝试使用Java 8编译项目。

如图所示,我已经设置了正确的jdk:

JDK位置

还更改了目标版本:

目标版本

但是我仍然遇到错误: compileSdkVersion'android-24'需要JDK 1.8或更高版本进行编译。

我哪里错了?

编辑:我在Ubuntu 12.04上

java-8 android-studio

1
推荐指数
1
解决办法
2948
查看次数

将lambda转换为函数/方法

我试图理解java中的一个程序,它使用lambda将对象返回到接口的引用变量中.我想将lambda转换为简单的java函数,但不知道该怎么做.

该计划如下: -

public class AgentLicenseLazyModel extends CoreDataModel<AgentLicenseModel> {

    public AgentLicenseLazyModel(final List<AgentLicenseModel> entities) {
        super(AgentLicenseModel.class, entities, (sortField, sortOrder) -> {
            return new AgentLicenseLazySorter(sortField, sortOrder);
        });
    }
}
Run Code Online (Sandbox Code Playgroud)

这是抽象类:

public abstract class CoreDataModel<T extends AbstractEntityModel> extends LazyDataModel<T> {

private final Class<T> entityClass;
private final List<T> entities;
private final CoreDataSorterProducer<T> coreDataSorterProducer;

public CoreDataModel(final Class<T> entityClass, final List<T> entities, final CoreDataSorterProducer<T> coreDataSorterProducer) {
    this.entityClass = entityClass;
    this.entities = entities;
    this.coreDataSorterProducer = coreDataSorterProducer;

    if (entities != null) {
        setRowCount(entities.size());
    }
}
Run Code Online (Sandbox Code Playgroud)

如何在不使用lambda进行学习的情况下将此程序转换为简单的java程序.请帮忙.

编辑:这是CoreDataSorterProducer:

@FunctionalInterface …
Run Code Online (Sandbox Code Playgroud)

java lambda java-8

1
推荐指数
1
解决办法
725
查看次数

如何使用具有Java 8功能的Realm数据库

我是使用Android的Realm数据库的新手.

我修改了我的gradle文件以包含Jack工具链,以便我可以使用Java 8语言功能.我还修改了gradle文件以安装Realm插件.当我同步项目gradle文件时,我收到以下错误:Error:Could not find property 'options' on task ':app:compileDebugJavaWithJack'.这两个修改本身很好,但由于某种原因,我不能同时兼得.

我非常感谢这方面的帮助.

java android realm gradle java-8

1
推荐指数
1
解决办法
734
查看次数

Java 8无限流输出

下面的代码创建空的地图Stream使用lambda expression和下一行用于输出的任何元素的信息流中.但是在运行代码时它会产生无限的输出.我不知道为什么,因为它应该打印{}一次因为地图是空的.有人可以解释发生了什么吗?

 Stream<Map<String,String>> mapStream = Stream.generate(() -> {
        return Collections.emptyMap();
    });
    mapStream.forEach(System.out::println);
Run Code Online (Sandbox Code Playgroud)

java lambda java-8 java-stream

1
推荐指数
1
解决办法
446
查看次数

为什么库包含Stream.of(T t)和Stream.of(T ...值)?

自从这个方法

Stream.of(T... values)
Run Code Online (Sandbox Code Playgroud)

包括单个元素的情况,为什么方法:

Stream.of(T t)
Run Code Online (Sandbox Code Playgroud)

还包括在API中?它的目的是什么?什么时候被调用?它与varargs版本有什么不同吗?

java java-8 java-stream

1
推荐指数
1
解决办法
79
查看次数

如何在Java 8中使用Java 7 HashMaps?

我正在升级依赖于HashMap的Java 7迭代顺序的应​​用程序.Java 8 HashMap改变了它的迭代顺序,这与一些应用程序(可能是糟糕的设计)不兼容,我必须使用Java 7 HashMaps成功地将应用程序迁移到Java 8.这就是我想到的方式:

  1. 创建一个扩展常规Java 8 HashMap的Java7HashMap
  2. 查找Java 7 HashMap的源代码,进行复制和粘贴.
  3. 替换"import java.util.HashMap;" 用"import(...).Java7HashMap;"
  4. 彻底测试一切.

这是一个很好的方法吗?遗憾的是,不能重写依赖于Java 7版本的HashMap的部分.

java upgrade hashmap java-7 java-8

1
推荐指数
1
解决办法
436
查看次数

为什么在这里省略泛型类型参数是可以接受的?

在以下代码段中:

public class IDMapBase<T> extends HashMap<DeviceID, T> {
    public Map<DeviceID, T> filterMap(Set<DeviceID> neededIDs) {
        return entrySet().stream()
            .filter(e -> neededIDs.contains(e.getKey()))
            .collect(Collectors.toMap(Entry::getKey, Entry::getValue));
    }
}
Run Code Online (Sandbox Code Playgroud)

为什么简单地说Entry::getXX而不是Entry<DeviceID, T>>::getXX?我认为这(Map.)Entry将默认为Entry<Object, Object>,它不能用作a的条目Map<DeviceID, T>.

java java-8 java-stream

1
推荐指数
1
解决办法
715
查看次数

Java lang IllegalAccess通过HashBasedTable累加器收集Guava不可变表

执行下面的代码时出错,

引起:java.lang.IllegalAccessError:试图从类访问com.google.common.collect.AbstractTable类

 ImmutableTable.copyOf(listItemsToProcess.parallelStream()
                    .map(item ->
                            ProcessorInstanceProvider.getInstance()
                            .buildImmutableTable(item))
                    .collect(() -> HashBasedTable.create(),
                            HashBasedTable::putAll,

                            HashBasedTable<Integer, String,    
                            Boolean>::putAll)
                    );
Run Code Online (Sandbox Code Playgroud)

出现错误 - HashBasedTable :: putAll使用Oracle的1.8 jre

java guava java-8 collectors

1
推荐指数
1
解决办法
203
查看次数

如果我使用Java 8的String.codePoints来获取int codePoints数组,那么数组的长度是字符数吗?

给定String stringJava中的一个,确实string.codePoints().toArray().length反映String了人类会发现有意义的实际字符的长度吗?换句话说,它是否平滑了转义字符和其他编码工件?

编辑 "人类"我的意思是"程序员",因为我想大多数程序员会看到\r\n两个角色,ESC一个角色等等.但是现在我看到即使是重音标记也会被雾化,所以无关紧要.

java codepoint character-encoding java-8

1
推荐指数
1
解决办法
997
查看次数

如何使用Java 8简化链接条件

   public class ShiftPatternDTO{
    private boolean monday;
    private boolean tuesday;
    private boolean wednesday;
    private boolean thursday;
    private boolean friday;
    private boolean saturday;
    private boolean sunday;

    public boolean isMonday() {
        return monday;
    }


    public boolean isTuesday() {
        return tuesday;
    }


    public boolean isWednesday() {
        return wednesday;
    }


    public boolean isThursday() {
        return thursday;
    }



    public boolean isFriday() {
        return friday;
    }


    public boolean isSaturday() {
        return saturday;
    }


    public boolean isSunday() {
        return sunday;
    }
}

     public enum WeekDay {

        MONDAY("Monday", 1), …
Run Code Online (Sandbox Code Playgroud)

java lambda java-8

1
推荐指数
1
解决办法
314
查看次数