小编Joh*_*uhn的帖子

比较Java中的日期 - 只有年,月和日

我想与date对象进行比较.只有一个问题是我想比较几天,几个月和几年.

/* toString output
mydate 2013-08-23
current date: Thu Aug 23 14:15:34 CEST 2013
Run Code Online (Sandbox Code Playgroud)

如果我比较几天(23-08-2013)日期是相等的,如果我使用.after().之前()方法日期是不同的.

是否有简单比较日,月,年的Java方法或者我必须比较每个值?

java date

10
推荐指数
2
解决办法
5万
查看次数

为什么eclipse java编译器(ecj)不能编译这个?

我有以下代码:

package test;

import java.util.stream.IntStream;

public class A {
    public static void main(String[] args) {
        IntStream.range(0, 10).mapToObj(n -> new Object() {
            int i = n;
        }).mapToInt(o -> o.i).forEachOrdered(System.out::println);
    }
}
Run Code Online (Sandbox Code Playgroud)

使用javac 1.8.0_101编译时,此代码工作正常,并按预期生成数字0到9.

但是当我在Eclipse中使用这段代码时,它会告诉我o.i:

i cannot be resolved or is not a field
Run Code Online (Sandbox Code Playgroud)

执行此操作时产生错误:

Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
    i cannot be resolved or is not a field

    at test.A.main(A.java:9)
Run Code Online (Sandbox Code Playgroud)

为什么我需要使用javac来编译这段代码?

我如何让Eclipse表现出来?

编辑:

我做了一些测试,只要我不在lambda中创建实例,它就可以在ecj中工作:

package test;

import java.util.Optional;
import java.util.function.Supplier;

public class B …
Run Code Online (Sandbox Code Playgroud)

java javac ecj

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

Django manage.py runserver详细程度

有没有办法让runserver命令完全安静或只显示404或500之类的错误?详细程度选项对它没有影响......

django

9
推荐指数
2
解决办法
1万
查看次数

Cakephp,有什么好处?

我听说很多关于cakephp的事情,甚至是招聘公司在招聘公司工作的要求.我是初学者编程,但我喜欢从头开始做事,因为我理解一切,感觉更灵活.

我的下一个项目,我想建立具有用户网站,用户可以投票,他们可以发布条目以及管理他们的作品.cakephp会是一个很好的框架,还是我应该自己做?

php frameworks cakephp content-management-system

8
推荐指数
2
解决办法
7160
查看次数

使用OpenCV打开Android原生相机

我只需要知道如何从这开始实际上我需要使用opencv打开Android原生相机.

我在哪里可以找到相关文档或任何帮助材料?我已经设置了我的eclipse与opencv示例项目一起工作!

java camera android opencv

7
推荐指数
1
解决办法
2万
查看次数

电报地理定位

我有一个想法,使用电报机器人从智能手机订购食物.所以,你有一个菜单,价格,有一个支付网关.这部分对我来说似乎很清楚.

我想知道是否有办法在电报内获取地理定位信息?因此智能手机所有者位置会自动发送

我看到的替代方案是:

  • 通过电报写地址(太多的工作,可能餐厅必须回电);
  • 安装一个小型Android/iOS应用程序只是为了向服务发送一个位置.有点感觉很尴尬,但第一选择好一点.

也许你可以看到更好的方法,也许电报已经有了一些相关的功能?

谢谢!

bots geolocation telegram telegram-bot

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

模块边界也是安全边界吗?

我想知道模块边界是否也是安全边界?

更具体地说,没有非法访问(--illegal-access=deny)和拒绝访问jdk.unsupported,它看起来accessClassInPackage不会再导致完整的沙箱逃脱.

真的吗?当此权限授予不受信任的代码时,是否还有其他方法可以破坏JVM的安全性?

要明确:

  • 要加载您需要的本机库ReflectPermission("supressAccessChecks")- 未授予
  • 要访问ReflectPermission("supressAccessChecks")您需要访问-Djava.security.manager模块和--illegal-access=deny- 未授予
  • RuntimePermission("loadLibrary.*")通过反射访问sun.misc.Unsafe,RuntimePermission("accessClassInPackage.sun.misc")必须打开ClassLoader.defineClass您的模块 - 它不是.

所以要么:

  • 是否有其他方法可以绕过/转义java沙箱setAccessible(true)
  • 或者模块边界是否被视为安全边界,这样的沙箱旁路会被视为安全漏洞?

java security sandbox java-security java-module

7
推荐指数
0
解决办法
223
查看次数

公司在家中非工作期间寻求我的个人项目?

好的,所以我正在建立"Web 2.0/3.0"网站以赚取额外的钱.我目前运行自己的个人项目网站,在后端(AI的东西,推荐系统)中使用了多年来开发的一些先进技术.这是一个订阅网站,让我在旁边赚钱.

现在,我的公司(他们做网络应用程序/软件技术,广告网络)以某种方式发现我运行了几个网站.他们就像是,"嘿乔,你运行网站!为什么不把它们放在我们的广告网络上?你正在做的事情对我们的技术构成威胁 - 我们不希望你与我们竞争我们将您的网站放在我们的投资组合/广告网络上."

好吧,基本上他们似乎想要我的技术和个人项目的权利.不知何故,他们必须用Google搜索我的名字并将其与我正在进行的一些项目联系起来.这对公司来说是否合乎道德?试图拥有我的个人项目,因为它有一些很酷的技术,并试图拥有它的权利?仅仅因为我为公司工作并不意味着我会向他们提出要约,对吗?

projects web

6
推荐指数
2
解决办法
970
查看次数

为什么在这里使用方法引用或lambda为何如此重要?

当我尝试编译这段代码时

import java.util.Optional;

public class GenericTest {

    public static void main(String[] args) {
        Optional.empty().map(o -> getStringClass(o)).orElse(String.class);
    }

    static Class<?> getStringClass(Object arg) {
        return String.class;
    }

}
Run Code Online (Sandbox Code Playgroud)

javac将失败,并显示以下错误:

GenericTest.java:6:错误:类别Optional中的方法orElse无法应用于给定类型;
                Optional.empty()。map(o-> getStringClass(o))。orElse(String.class);
                                                            ^
  必需:Class <CAP#1>
  找到:类<String>
  原因:参数不匹配;Class <String>无法转换为Class <CAP#1>
  其中T是类型变量:
    T扩展了在Optional类中声明的Object
  CAP#1是新鲜的类型变量:
    CAP#1扩展了对象的捕获范围
1个错误

但是,如果我改用方法引用,则javac会很好地编译代码:

import java.util.Optional;

public class GenericTest {

    public static void main(String[] args) {
        Optional.empty().map(GenericTest::getStringClass).orElse(String.class);
    }

    static Class<?> getStringClass(Object arg) {
        return String.class;
    }

}
Run Code Online (Sandbox Code Playgroud)

如果使用方法引用或lambda表达式,为什么会有区别?

根据我的理解,方法引用和lambda都具有type Function<Object,Class<?>>,所以在这里我看不到区别。
Eclipse Java编译器(ecj)不会同时编译两个版本。

java lambda javac method-reference

6
推荐指数
2
解决办法
169
查看次数

为什么Java编译器不能从约束Iterable &lt;推断出Iterable &lt;String&gt;?扩展CharSequence&gt;和()-&gt;(Iterator &lt;String&gt;)

背景:最近我写了一个答案,建议我编写以下代码:

Files.write(Paths.get("PostgradStudent.csv"),
        Arrays.stream(PGstudentArray).map(Object::toString).collect(Collectors.toList()),
        StandardOpenOption.CREATE, StandardOpenOption.TRUNCATE_EXISTING);
Run Code Online (Sandbox Code Playgroud)

经过一番思考,我说:“我实际上不需要这里的列表,我只需要一个Iterable<? extends CharSequence>”。
就像Stream<T>一种方法一样Iterator<T> iterator(),然后我想到了,这很容易:

Iterable<? extends CharSequence> iterable = () -> Arrays.stream(arr).map(Object::toString).iterator();
Run Code Online (Sandbox Code Playgroud)

(针对这个问题,我将其提取到一个局部变量中,我想最后进行内联。)
不幸的是,如果没有其他类型提示,则无法编译该代码:

error: incompatible types: bad return type in lambda expression
Iterable<? extends CharSequence> iterable = () -> Arrays.stream(arr).map(Object::toString).iterator();
                                                                                                   ^
    Iterator<String> cannot be converted to Iterator<CharSequence>
Run Code Online (Sandbox Code Playgroud)

当然添加一些类型提示将使这项工作:

Iterable<? extends CharSequence> iterable2 = (Iterable<String>) () -> Arrays.stream(arr).map(Object::toString).iterator();
Iterable<? extends CharSequence> iterable3 = () -> Arrays.stream(arr).<CharSequence>map(Object::toString).iterator();
Run Code Online (Sandbox Code Playgroud)

以我的理解,Java编译器执行以下操作:

  1. 它查看表达式的目标类型,即Iterable<? extends CharSequence>
  2. 然后,它确定此接口的功能类型,() -> Iterator<? …

java lambda type-inference jls

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