Implements 语句

本文介绍了在 Visual Basic 中如何实现接口,包括Implements语句的使用方法、接口与类的关系以及实现接口时的注意事项。
 
Implements    [InterfaceName   |   Class]  
   
 所需的    InterfaceName   或    Class   是类型库中的接口或类的名称,该类型库中的方法将用与    Visual   Basic   类中相一致的方法来实现。   
   
 说明   
   
 所谓接口就是代表接口封装的成员(方法以及属性)的原型集合;也就是说,它只包含成员过程的声明部分。一个类提供一个或多个接口的所有方法以及属性的一种实现方案。类的控制者每次调用函数时,该函数所执行的代码由类来提供。每个类至少应实现一个缺省接口。在    Visual   Basic   中,一个已实现的接口中任何没有显式声明的成员都是缺省接口的隐式成员。   
   
 当    Visual   Basic   类实现接口时,都会提供该接口的类型库中说明的所有    Public   过程的版本。除了提供接口原型与自编过程之间的映射关系之外,Implements    语句还使这个类接收对指定接口    ID   的    COM   QueryInterface   调用。   
    
 注意    Visual   Basic   不能实现派生出来的类或接口。   
   
 在实现接口或类时,必须包括所用到的    Public   过程。如果在实现接口或类时遗漏了成员,就会产生错误。如果正在实现的类中某个过程还没有代码,则可以产生一个适当的错误信息    (Const   E_NOTIMPL   =   &H80004001),以便用户意识到该成员还没有实现。   
   
 Implements    语句不能在标准模块中使用。
 
由于提供的引用内容未涉及`implements UserDetails`代码处出现爆红问题的解决方案,下面基于常见情况给出解决办法。 ### 1. 检查依赖是否添加 在Spring Security项目中,若要使用`UserDetails`接口,需要确保项目中添加了Spring Security的依赖。以Maven为例,在`pom.xml`文件中添加如下依赖: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency> ``` 以Gradle为例,在`build.gradle`文件中添加如下依赖: ```groovy implementation 'org.springframework.boot:spring-boot-starter-security' ``` ### 2. 检查接口方法是否实现 当类实现`UserDetails`接口时,必须实现该接口的所有抽象方法,这些方法包括`getUsername`、`getPassword`、`getAuthorities`等。示例代码如下: ```java import org.springframework.security.core.GrantedAuthority; import org.springframework.security.core.userdetails.UserDetails; import java.util.Collection; public class CustomUserDetails implements UserDetails { private String username; private String password; private Collection<? extends GrantedAuthority> authorities; public CustomUserDetails(String username, String password, Collection<? extends GrantedAuthority> authorities) { this.username = username; this.password = password; this.authorities = authorities; } @Override public String getUsername() { return username; } @Override public String getPassword() { return password; } @Override public Collection<? extends GrantedAuthority> getAuthorities() { return authorities; } @Override public boolean isAccountNonExpired() { return true; } @Override public boolean isAccountNonLocked() { return true; } @Override public boolean isCredentialsNonExpired() { return true; } @Override public boolean isEnabled() { return true; } } ``` ### 3. 检查类路径和包导入 确保类路径正确,且正确导入了`UserDetails`接口。在Java文件开头添加正确的导入语句: ```java import org.springframework.security.core.userdetails.UserDetails; ``` ### 4. 检查IDE缓存和重新构建项目 有时IDE的缓存可能会导致一些错误显示,可尝试清除IDE的缓存并重新构建项目。以IntelliJ IDEA为例,可以通过`File` -> `Invalidate Caches / Restart`来清除缓存并重启IDE,然后重新构建项目。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值