相关疑难解决方法(0)

静态类型语言和动态类型语言有什么区别?

我听到很多新的编程语言都是动态输入的,但是当我们说一种语言是动态类型而非静态类型时,它实际意味着什么呢?

computer-science programming-languages static-typing dynamic-typing

894
推荐指数
11
解决办法
40万
查看次数

lambdas中隐含的匿名类型

这个问题中,用户@Holger提供了一个答案,显示了匿名类的不常见用法,我不知道.

该答案使用流,但这个问题不是关于流,因为这个匿名类型构造可以在其他上下文中使用,即:

String s = "Digging into Java's intricacies";

Optional.of(new Object() { String field = s; })
    .map(anonymous -> anonymous.field) // anonymous implied type 
    .ifPresent(System.out::println);
Run Code Online (Sandbox Code Playgroud)

令我惊讶的是,这会编译并打印预期的输出.


注意:我很清楚,自古以来,可以构造一个匿名内部类并使用其成员,如下所示:

int result = new Object() { int incr(int i) {return i + 1; } }.incr(3);
System.out.println(result); // 4
Run Code Online (Sandbox Code Playgroud)

但是,这不是我在这里问的问题.我的情况不同,因为匿名类型是通过Optional方法链传播的.


现在,我可以想象这个功能的一个非常有用的用法......很多时候,我需要mapStream管道上发出一些操作,同时保留原始元素,即假设我有一个人员列表:

public class Person {
    Long id;
    String name, lastName;
    // getters, setters, hashCode, equals...
}

List<Person> people = ...;
Run Code Online (Sandbox Code Playgroud)

而且我需要Person在某些存储库中存储我的实例的JSON表示,为此我需要每个Person …

java lambda anonymous-types language-lawyer java-8

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

匿名类遇到了一些问题

我试图在Java中创建anon类

class myClass {

   int x = 10;

 }



public class Main  {
    public static void main(String[] args) {
        myClass myObject = new myClass() {

           public void run(){
               System.out.println(x);
           }
        };
        myObject.run(); //gives an error saying "method run() is undefined for the type myClass"
    }

  }
Run Code Online (Sandbox Code Playgroud)

尽管它创建了一个包含run()方法的匿名类,但我是一个完整的java初学者,但我大部分时间都在编写代码,但它似乎根本不起作用,这给我一个错误,说方法run()未定义javascript,javascript是我最熟悉的语言,并且我正试图习惯Java概念,所以对这个人来说,这个问题似乎很愚蠢,对此我深表歉意。提前致谢

java

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