V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  Kaiv2  ›  全部回复第 12 页 / 共 23 页
回复总数  458
1 ... 8  9  10  11  12  13  14  15  16  17 ... 23  
2022-06-10 23:43:37 +08:00
回复了 rqxiao 创建的主题 Java 对 Java 之泛型通配符 ?extends T 的认知 和 ? super T 一些疑惑
import java.util.ArrayList;
import java.util.List;

public class App {

class A {

}

class B extends A {

}
class C extends B {

}
class D extends C {

}


public static void main(String[] args) {
// 编译支持, 使用继承关系
List<A> al = new ArrayList<A>();
al.add(new A());
al.add(new B());
al.add(new C());
A a = al.get(0);

// 声明 List<? extends A> , 实现可能是 继承 A 的任意类型
List<? extends A> al1 = new ArrayList<A>();
List<? extends A> al2 = new ArrayList<B>();
List<? extends A> al3 = new ArrayList<C>();
// 虽然编译器知道放入数据一定是继承 A ,但是用户指定的实现不确定 比如 al3 无法放入 B 类型,会有类型转换错误
al1.add(new A()); // 编译错误
al2.add(new B()); // 编译错误
// 应为声明的 List<? extends A>, 编译器确定类型一定是 A
A x = al1.get(0);




// 声明 List<? super A> , 实现可能是 A 的任意父类, 兼容放入 A 以及子类
// 编译器支持放入任意 A oo X extends A
List<? super A> bl1 = new ArrayList<Object>();
List<? super B> bl2 = new ArrayList<A>();
List<? super C> bl3 = new ArrayList<B>();

bl1.add(new B());
bl1.add(new C());

bl2.add(new C());
bl2.add(new D());
// 编译器无法获取确定实现类支持的数据类型, 因为 bl1 可以是 A or Object 的 List 装载数据
A b = bl1.get(0); // 编译错误
Object o = bl1.get(0); // 所有类型的父类是 Object 所以支持
// 需要人为强制转换
B b1 = (B)bl1.get(0);

}
}
2022-05-26 16:56:42 +08:00
回复了 asanelder 创建的主题 程序员 why javaer 什么都要搞一个 interface?
说下这种模式的优点
IUserService

UserSeriveImpl

我开发一个依赖 UserService 的模块, 你负责 UserService 模块的开发,但是还没实现。你可以先提供接口给我。

类似的 ( dubbo 服务也是这样)
2022-05-26 09:13:07 +08:00
回复了 Kaiv2 创建的主题 MacBook Air MacBook Air (m1)黑屏问题
5 月 17 号出现相同的问题,不过无法开机了。已送去维修
2022-05-19 10:45:10 +08:00
回复了 zx9481 创建的主题 问与答 说说自己买过最满意的电子产品吧
MacBook Air M1 前几天刚说最满意的,昨天用着用着黑屏了😂。
这周六拿去店里看看
2022-05-17 10:13:19 +08:00
回复了 zx9481 创建的主题 问与答 说说自己买过最满意的电子产品吧
MacBook Air m1
2022-05-12 15:21:55 +08:00
回复了 Joker123456789 创建的主题 Java 关于 Java 很啰嗦的问题
@Kaiv2 想表达多继承没写完就按了下 tab 空格 发出去了 😂
2022-05-12 14:56:54 +08:00
回复了 Joker123456789 创建的主题 Java 关于 Java 很啰嗦的问题
在 Java 8 之前确实是有点费劲。
场景: 用户选择不同支付方式付款

interface IUserService {
User find();
}

class UserServiceImpl {
User find() {
}
}


interface IOrderService {
void pay();
}
2022-05-12 10:27:23 +08:00
回复了 Kaiv2 创建的主题 Vim NVIM LSP 跳转到依赖库,启动了多个 LSP 服务问题
@jdhao Java 项目没有这个问题,应该是没有实际的文件( jar 包),只是 jtd:// 的开头的文件路径
2022-05-12 10:24:08 +08:00
回复了 Kaiv2 创建的主题 Vim NVIM LSP 跳转到依赖库,启动了多个 LSP 服务问题
@jdhao 特别是查看引用时,会启动一堆 LSP 服务
2022-05-12 10:22:59 +08:00
回复了 Kaiv2 创建的主题 Vim NVIM LSP 跳转到依赖库,启动了多个 LSP 服务问题
@jdhao 占内存没有太关注,但是我只是想看下源码,却启动了一个 LSP 服务(强迫症受不了😂)
梦里面好多细节都忽略了
2022-04-11 09:40:07 +08:00
回复了 followyourheart 创建的主题 Java 单例模式 双检测问题请教
https://cdmana.com/2022/03/202203090332315266.html

这里讲的比较清楚
double-checked locking
👍
mac m1
微信 281.6MB
线程数 55
个人感觉 200MB 内才是正常的
2022-03-31 09:42:13 +08:00
回复了 jiobanma 创建的主题 macOS Mac 好用软件分享
@Kaiv2 mpv 是真的好用,可以用来看直播 😄
2022-03-31 09:29:43 +08:00
回复了 jiobanma 创建的主题 macOS Mac 好用软件分享
推荐的都是终端下的软件:
1. iTerm2 漂亮的终端
2. alacritty 更漂亮的终端, 功能少,配合 tmux 使用。
3. neovim 文本编辑器(IDE)
4. nnn 终端文件管理器
5. mpv 媒体播放器 (DSF 格式也能播放)
6. htop 系统监控
7. rg 全局搜索
8. fd 文件搜索
9. bat 代码高亮文件查看
2022-03-18 16:38:17 +08:00
回复了 zero2me 创建的主题 上海 如何看待小牛提速被点名?
感觉很多地方都没有非机动车道,出门在没非机动车道的地方是骑行在人行道还是机动车道里呢?
2022-03-15 20:27:05 +08:00
回复了 season8 创建的主题 健康 二郎腿戒断法
@mzfbwu 抖腿有利于血液循环,挺好的
2022-03-11 23:14:34 +08:00
回复了 xiangyuecn 创建的主题 程序员 稳定复现,看我几行代码搞崩 Chrome
Microsoft Edge
版本 99.0.1150.36 (正式版本) (arm64)
时好时坏
1 ... 8  9  10  11  12  13  14  15  16  17 ... 23  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1019 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 36ms · UTC 22:34 · PVG 06:34 · LAX 14:34 · JFK 17:34
Developed with CodeLauncher
♥ Do have faith in what you're doing.