最近,我被要求cherry-pick
提交.
那么,在git中挑选一个提交意味着什么呢?你怎么做呢?
我通常会提交一份提交列表以供审核.如果我有以下提交:
HEAD
Commit3
Commit2
Commit1
...我知道我可以修改头部提交git commit --amend
.但是我怎么能修改Commit1
,因为它不是HEAD
提交?
我是Java的新手,经常发现我需要对Map<Key, Value>
值进行排序.
由于值不是唯一的,我发现自己将其转换keySet
为a array
,并通过数组排序对该数组进行排序,并使用自定义比较器对与键关联的值进行排序.
有没有更简单的方法?
如何在Python中导入其他文件?
import file.py
?例如,main.py
我有:
from extra import *
Run Code Online (Sandbox Code Playgroud)
虽然这给了我所有的定义extra.py
,但也许我想要的只是一个定义:
def gap():
print
print
Run Code Online (Sandbox Code Playgroud)
我怎么添加到import
语句只得到gap
从extra.py
?
我在阅读泛型时遇到了PECS(制片extends
人和消费者的super
简称).
能否给我一个人解释如何使用佩奇之间解决困惑extends
和super
?
我正在使用这些Scanner
方法nextInt()
并nextLine()
阅读输入.
它看起来像这样:
System.out.println("Enter numerical value");
int option;
option = input.nextInt(); // Read numerical value from input
System.out.println("Enter 1st string");
String string1 = input.nextLine(); // Read 1st string (this is skipped)
System.out.println("Enter 2nd string");
String string2 = input.nextLine(); // Read 2nd string (this appears right after reading numerical value)
Run Code Online (Sandbox Code Playgroud)
问题是输入数值后,第一个input.nextLine()
被跳过而第二个input.nextLine()
被执行,所以我的输出如下所示:
Enter numerical value
3 // This is my input
Enter 1st string // The program is supposed to stop here and …
Run Code Online (Sandbox Code Playgroud) 考虑这个例子(典型的OOP书籍):
我有一个Animal
班级,每个人都Animal
可以有很多朋友.
和子类一样Dog
,Duck
,Mouse
等它添加特定的行为一样bark()
,quack()
等等.
这是Animal
班级:
public class Animal {
private Map<String,Animal> friends = new HashMap<>();
public void addFriend(String name, Animal animal){
friends.put(name,animal);
}
public Animal callFriend(String name){
return friends.get(name);
}
}
Run Code Online (Sandbox Code Playgroud)
这里有一些代码片段有很多类型转换:
Mouse jerry = new Mouse();
jerry.addFriend("spike", new Dog());
jerry.addFriend("quacker", new Duck());
((Dog) jerry.callFriend("spike")).bark();
((Duck) jerry.callFriend("quacker")).quack();
Run Code Online (Sandbox Code Playgroud)
有什么办法可以使用泛型来返回类型来摆脱类型转换,这样我就可以说了
jerry.callFriend("spike").bark();
jerry.callFriend("quacker").quack();
Run Code Online (Sandbox Code Playgroud)
这里有一些返回类型的初始代码作为一个从未使用过的参数传递给方法.
public<T extends Animal> T callFriend(String name, T unusedTypeObj){
return (T)friends.get(name);
}
Run Code Online (Sandbox Code Playgroud)
有没有办法在运行时找出返回类型而不使用额外的参数instanceof
?或者至少通过传递类型的类而不是虚拟实例. …
我刚刚开始使用Java 8 lambdas,我正在尝试实现我在函数式语言中习惯的一些东西.
例如,大多数函数式语言都有某种类型的查找函数,这些函数对序列进行操作,或者列表返回谓词所在的第一个元素true
.我在Java 8中实现这一目标的唯一方法是:
lst.stream()
.filter(x -> x > 5)
.findFirst()
Run Code Online (Sandbox Code Playgroud)
然而这对我来说似乎效率低下,因为过滤器会扫描整个列表,至少根据我的理解(这可能是错误的).有没有更好的办法?
java ×7
generics ×2
git ×2
cherry-pick ×1
collections ×1
dictionary ×1
inheritance ×1
io ×1
java-8 ×1
java-stream ×1
pecs ×1
python ×1
return-value ×1
sorting ×1
super ×1