小编The*_*ool的帖子

如何在lamda表达式中使用super :: methodName引用方法的超类版本

我正在学习Java 8中的Lambda表达式和方法引用,并且看到我们可以通过使用'super'来引用方法的超类版本,如下所示:

超级::名

但是,当我这样做时,它不起作用.以下是示例代码:

interface MyInterface {
int someFunc(int x);
}

    class A {
    static int Func(int y) {
        // return (int) (Math.random() * y);
        return y;
    }
}

class B extends A {
    static int Func(int y) {
        // return (int) (Math.random() * y);
        return y + 1;
    }
}

public class Test {
    public static void main(String[] args) {
        System.out.print("Enter a number: ");
        java.util.Scanner scanner = new java.util.Scanner(System.in);
        int result = funcOp(B::Func, scanner.nextInt()); // <-This works.
//int result …
Run Code Online (Sandbox Code Playgroud)

java lambda java-8 method-reference

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

用户登录并重定向到主页后,如何隐藏登录链接并在主页导航栏中显示注销链接?

我正在开发一个基于 Spring boot 的 Web 应用程序,主页包含一个带有登录和注册链接的 boostrap 导航栏。

用户登录后(通过单击主页中的登录链接),他们将再次重定向到主页(除非他们在 Spring Security 启动 A&A 之前访问任何其他链接)。在重定向时,我想隐藏导航栏中的登录和注册链接,并在其位置显示注销链接。因为我想在应用程序的所有页面中插入导航栏。

我想知道当要求重定向到同一页面时执行此操作的最佳/标准方法是什么。

我能想到的一种解决方案是从 spring security 检查并获取 user-principal 对象,将其传递给 thymeleaf 模板,并检查 thymeleaf 模板的请求属性中是否存在 userprincipal 对象,这意味着用户已登录然后我可以隐藏(不渲染)登录和注册链接以及显示(渲染)注销链接。如果没有,则显示登录和注册链接并隐藏注销链接。我想知道,这是正确的方法吗?这对我来说就像是一种黑客攻击,因此想知道是否有任何标准方法可以做到这一点。

spring-mvc spring-security thymeleaf spring-boot bootstrap-4

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