小编use*_*357的帖子

Collection.sort(list)和list.sort()之间的区别

有什么理由我更喜欢Collection.sort(list)方法而不是简单地调用list.sort()?无论如何,内部Collection.sort只是调用类的sort方法List.

令人惊讶的是,几乎每个人都在告诉我使用它Collection.sort.为什么?

java sorting list

29
推荐指数
3
解决办法
8068
查看次数

合并可以更改分支的提交历史吗?

显然可以,请参见此处 -至少这是我的看法。

合并之前。的远程分支masterorigin左侧。两个分支都相同。

在此处输入图片说明

现在假设我和我的朋友都做了一些工作,并且我的朋友首先将他的工作推到了远程分支机构,而我已经在本地提交了我的工作。

在此处输入图片说明

在这种情况下,我不能简单地进行操作git push,因为这将导致commited by other从远程存储库中删除该文件(我认为我可以为此执行`git push -f,但是再次-这样会覆盖我朋友的提交)。

该文章建议git pull origin masterfetchoriginrepo master分支中的更改merge放入本地master分支中)重写本地分支中的提交历史记录master!怎么会这样?我认为合并只能创建一个新的合并提交,而不能更改现有的提交。但是在这种情况下,提交顺序已更改-现在commited by other是第一个,然后是 my local commit

因此,知道pull与fetch相同(它会更新origin/master本地存储在我的PC上的远程跟踪分支),然后将更新合并origin/master到本地分支中master,在这种情况下会产生相同的结果-合并是否会更改过去在本地master分支中提交的顺序?

在此处输入图片说明

git merge

5
推荐指数
1
解决办法
727
查看次数

dynamic_cast不适用于非多态类型的原因

带类B和派生类D

class B {
    int b;
};


class D : public B {
    int d;
};


D* d = new D();
B* b = dynamic_cast<B*>(d);
Run Code Online (Sandbox Code Playgroud)

上面的方法可以正常工作-这只是简单的转换。我们确定b所指向的B对象中都有类(子)对象。

然而,

B* b = new D();
D* d = dynamic_cast<D*>(b);
Run Code Online (Sandbox Code Playgroud)

即使b指向有效D实例也不会编译-因为基类不是多态的。因此,仅添加一个空的虚拟方法即可解决该问题。

重要的问题是为什么C ++要求源类型是多态的?我发现的唯一的解释是这样的,但它只是规定“因为这是它的内部实现” -至少在我的眼睛)。设计人员dynamic_cast可能还会想到其他一些原因-那是什么?

c++ polymorphism dynamic-cast

5
推荐指数
1
解决办法
544
查看次数

为什么不提交跟踪他们的孩子提交?

如果我们签出提交而不是分支,HEAD(指向分支的指针)将指向提交而不是分支的名称(调用此提交A).这称为分离的HEAD状态.如果我创建了一个新的提交 - 提交B,那么新的提交将会丢失(好吧,也许不会立即),因为我们无法引用它(实际上,我没有得到它,因为每个提交都有一个ID,对吧?一旦我们知道ID,我们就可以引用它,但由于某种原因,Git将删除这些提交.可能Git无法告知提交属于哪个分支).

提交者只知道他们的父母,而不是孩子.是否有一个原因?如果提交A有提交B的引用,我们可以忘记分离的HEAD问题,对吧?但我想这会引起一些其他问题 - 那是什么?

git

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

XML 命名空间冲突

我想知道为什么我们必须使用我们组织特有的 URI 来定义命名空间(就像 Java 中的包一样)。这显然是有道理的,可以让我们避免名称冲突。然而,这个页面说:

相同的前缀也可以引用不同的命名空间,具体取决于它们的上下文

所以基本上,如果我有自己的 XML 文档,并将自己的命名空间前缀myNamespace定义为http://hisdomain.com/test,那么有人可以重新定义 'myNamespace' 前缀以指向他自己的命名空间http://hisdomain.com/test即使是错误的(我认为如果我定义的命名空间前缀具有文档中已定义)。

即使使用 URI,其他人也需要确保他们不使用我的前缀!

然后,使用 URI 并必须向命名空间提供定义就变得毫无用处,如果我们仅使用前缀而不必使用属性提供定义,则命名空间系统同样可以正常工作xlns


如果我理解正确的话,这是不允许的:

<root xmlns:abc="mydomain.com/test" xmlns:abc="yourdomain.com/test">
...
</root>
Run Code Online (Sandbox Code Playgroud)

但这没关系 - 您可以abc用您的域名重新定义前缀。

<root xmlns:abc="mydomain.com/test">
    <body xmlns:abc="yourdomain.com/test">
    ...//to use my namespace here, I'd need to redefine it again to mydomain.com/test

    </body>
</root>
Run Code Online (Sandbox Code Playgroud)

xml xml-namespaces

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

标签 统计

git ×2

c++ ×1

dynamic-cast ×1

java ×1

list ×1

merge ×1

polymorphism ×1

sorting ×1

xml ×1

xml-namespaces ×1