考虑到我们有一个这样的方法签名
public abstract class BaseClass {
protected abstract void doStuff(final MyArg arg);
}
Run Code Online (Sandbox Code Playgroud)
为什么具体实现不再需要实现final方法签名中的修饰符?
public class ConcreteClass extends BaseClass {
@Override
protected void doStuff(MyArg arg) {
// TODO
}
}
Run Code Online (Sandbox Code Playgroud)
现在,我知道你仍然可以final在具体签名中提出论点,但你为什么不被迫呢?跳过它的原因是什么,还有一个问题,为什么代码生成器Intellij也默认跳过它?
我希望我的 Spring Web 应用程序只返回状态代码,403 UNAUTHORIZED而不是在/login用户尝试在未登录或没有正确权限的情况下访问资源时重定向。
我目前已经通过客户端登录设置了 Spring Security oauth2,但我相信它与基本登录也具有相同的行为。
@Override
protected void configure(HttpSecurity http) throws Exception
{
http.csrf().disable()
.authorizeRequests()
.antMatchers("/allowed").permitAll()
.anyRequest()
.authenticated()
.and()
.oauth2Login(this::configureOauthLogin) // sets up custom user services
.exceptionHandling()
.accessDeniedHandler((request, response, accessDeniedException) -> {
response.setStatus(HttpStatus.UNAUTHORIZED.value());
});
}
Run Code Online (Sandbox Code Playgroud)
我尝试过通过提供来处理它,accessDeniedHandler但我没有看到它改变任何东西,因为这个处理程序从未真正被触发。
总长DR
进行弹簧投掷403,而不是根据302未经授权的请求进行投掷。
编辑
这是我的过滤器链的转储
filters = {ArrayList@6668} size = 14
0 = {WebAsyncManagerIntegrationFilter@6635}
1 = {SecurityContextPersistenceFilter@6634}
2 = {HeaderWriterFilter@6633}
3 = {LogoutFilter@6632}
4 = {OAuth2AuthorizationRequestRedirectFilter@6631}
5 = {OAuth2LoginAuthenticationFilter@6630}
6 …Run Code Online (Sandbox Code Playgroud) java spring spring-security spring-boot spring-security-oauth2
假设我们有一张这样的桌子
id|value
--------
1 | 50
2 | 19
3 | 100
4 | 21
5 | -10
Run Code Online (Sandbox Code Playgroud)
如何使用ORDER BY运算符按值与另一个值的距离对值进行排序?
SELECT * FROM table ORDER BY nearest(value,30) DESC
Run Code Online (Sandbox Code Playgroud)
要获取此表:
id|value
--------
4 | 21
1 | 50
2 | 19
5 | -10
3 | 100
Run Code Online (Sandbox Code Playgroud) 在JAVA中,类名必须始终与文件名相同,但是有时文件包含多个类。文件中的单个类(或接口)可以是公共的,并且必须与文件具有相同的名称。但是,如果文件名具有多个非公共的类(或接口),那么如何确定文件名呢?
interface Foo {}
class Bar{}
Run Code Online (Sandbox Code Playgroud)
有些人对此问题感到困惑
实际上,我知道无论选择Foo还是Bar作为文件名都可以。但是,我感兴趣的是是否有某种命名类的约定。
我为什么不随便命名呢?因为我实际上是在编写重构代码的应用程序,并且每当它重命名类时,我都需要知道如何以及何时更改文件名。
到目前为止,我认为正确的方法是:
如果class有一个公共节点,则将其名称用作文件名,否则只需选择第一个节点,因此在此示例中Foo将获胜。因此,我简化了一个问题:这是正确的方法,还是还有其他事情?
我一直在犯这样的错误:
puts browser.table(:after? => span(:text => "Asmeniniai duomenys") )[2][2].text
Run Code Online (Sandbox Code Playgroud)
基本上说:
undefined method `span' for main:Object (NoMethodError)
Run Code Online (Sandbox Code Playgroud)
要么
undefined method `table' for main:Object (NoMethodError) etc...
Run Code Online (Sandbox Code Playgroud)
所以我决定找不到桌子.我试过if/else,但这是我第一次使用ruby,我不明白它是否有效.
所以我认为最简单的方法是找出如何突出显示的东西.
任何人都可以建议我如何突出显示元素或如何解决这个问题?
int * a;
a = new int[10];
cout << sizeof(a)/sizeof(int);
Run Code Online (Sandbox Code Playgroud)
如果我使用普通数组答案是10,唉,打印的幸运数字是1,因为sizeof(int)是4而iszeof(*int)也是4.我怎么能这个?在我看来,保持内存大小是一个复杂的选择.如何使用代码获得大小?
我最好的猜测是迭代一个数组并搜索它的结束,结束是0,对吗?有什么建议?
- 编辑
好吧,我对矢量的担心是它会在推回时重新分配,你得到了重点,我可以分配内存.但是,我无法改变结构,整个代码是相关的.谢谢你的答案,我看到没有办法,所以生病只是寻找一种方法来存储大小的内存.
我问的问题不是什么样的结构.