class B {};
class D : protected B {};
D d;
B *p = &d; // conversion from 'D *' to 'B &' exists, but is inaccessible
Run Code Online (Sandbox Code Playgroud)
我在我的应用程序中遇到此错误,最后我通过进行显式转换设法编译它:
D d;
B *p = (B*)&d;
Run Code Online (Sandbox Code Playgroud)
我无法理解为什么通过使D类继承受B保护而使得隐式转换不可访问.
我试图通过在D类中创建一个运算符B()来避免显式转换,以使转换可访问:
class B {};
class D : protected B
{
public:
operator B() {return *this;}
};
Run Code Online (Sandbox Code Playgroud)
但是没有办法.
任何其他避免显式转换的解决方案?
我希望能够在Java中更改1970年到2008年的基本毫秒参考,这样我就可以节省数据库中的空间和唯一的ID.
最好是Joda-Time.
所谓的Java 7版本中即将推出的jsr-310实现了它.
在此链接的"离散时间轴"部分中,它指出毫秒的计数已从1970年改为2008年
http://today.java.net/pub/a/today/2008/09/18/jsr-310-new-java-date-time-api.html
我能看到的唯一其他选项是每次需要查找记录时以数学方式实现它.
例如
DateTime dt = new DateTime();
long now = dt.getMillis();
DateTime dt2 = new DateTime(2008, 1, 1, 0, 0, 0, 0);
long then = dt2.getMillis();
long smallerDate = now - then;
Run Code Online (Sandbox Code Playgroud)
较小的日期将存储在DB中
- 编辑 -
所以我误读了JSR-310,这是不可能的.
有更好的方法来节省空间,然后处理成千上万的请求计算多头的头痛.
我想将长记录为日期,因为我永远不会知道将数据库移动到哪里,也许MySQL => Oracle.
所以我不想要时间戳,我只想要BigInts.
我们有许多开发人员的项目.有些使用Visual Studio 2008 Professional和TFS Client,其他人使用Visual Studio 2008 Team System.
我们有签到政策,应该有一个评论,它应该连接到工作项.
一些使用Visual Studio 2008 Professional的开发人员收到以下错误:
Checkin无法继续,因为政策要求未得到满足
即使条件已经满足.有一段时间我们也在VS Team System安装上得到了这个,但这似乎已经解决了.
任何想法我们为什么会收到此错误?我们错过了更新吗?
如何选择没有重复"首字母"值的数据?我的表有一个名为"title_raw"的列,数据排列遵循"A,B,C,......"我希望我的数据显示如下
Select (title_raw no duplicate first letter) from SONGS
Run Code Online (Sandbox Code Playgroud) 我有一个.Net(C#)解决方案.该解决方案包含大量项目.这些项目不是我实施的.它不是一个框架,它意味着我需要尽可能少的公共方法/属性.我的任务是确定未使用但存在于项目中的方法和属性.好吧,我可以找到不使用R#的私有方法.但是如何找到未使用的公共方法/属性是完全不清楚的.
我听说他们有NDepend工具,但它不是很简单的工具,是吗.
所以,问题是:请你指出一个工具,可以用来识别解决方案中没有使用的方法.我可以使用命令行工具或非常简单的东西.
UPD:我试过使用试用NDepend.
好吧,首先,似乎可以看到公共方法(属性表示为get_set_方法),这些方法未在此特定程序集中使用.
但NDepend无法识别公共方法是否来自另一个项目/程序集,这是解决方案的一部分,并将该方法显示为未使用.但是这是错误的.
UPD2:mcintyre321建议使用R#.请阅读下面的第一条评论.
我正在尝试理解在我的查询中最外层选择上使用DISITINCT时使用row_number()函数以降序排序结果时看到的异常行为,如下所示:
SELECT DISTINCT (ID), State_Id, Name_Of_Trip, Date_Of_Travel, Creation_Date, Locking_Id, Applicant_Name, Reference_Number, State_Name
FROM (
SELECT app.ID, app.State_Id, app.Name_Of_Trip, app.Date_Of_Travel, app.Creation_Date, app.Locking_Id, app.Applicant_Name, app.Reference_Number,
State.Name AS State_Name, ROW_NUMBER() OVER(ORDER BY Reference_Number DESC) as rowNum
FROM Application_Leg AS app
INNER JOIN State AS state
ON app.State_Id = state.ID
WHERE (app.State_Id = 5 OR app.State_Id = 6 OR app.State_Id = 8) AND app.Organisation_Id=12
AND Leg_Number IN
(SELECT DISTINCT Leg_Number
from Application_Leg as al
INNER JOIN
Organisation as org
ON al.Organisation_Id = org.ID
WHERE …Run Code Online (Sandbox Code Playgroud) 我们正在使用MVVM模式构建应用程序,我们有控制器使用DI连接所有视图和视图模型.我见过的MVVM的所有例子都非常简单,只有1个视图.Viewmodels如何/应该与控制器对话?如果viewmodel将事件发送回控制器,控制器会知道模型和视图吗?应该在哪里进行保存?模型?控制器?
我把这个类映射为一个实体,让我们称之为Person.Person与Address具有嵌入/组件关系.我在使用会返回Address对象的Criteria时遇到问题.我试过这个:
Criteria.createCriteria(Address.class)
Run Code Online (Sandbox Code Playgroud)
哪个不起作用.我想我需要通过实体然后我需要某种投影?
Criteria.createCriteria(Person.class).<<what goes here???>>
Run Code Online (Sandbox Code Playgroud)
建议?
我偶然发现了Java的一个非常令人费解的功能(?).
似乎使用"new"关键字替换方法参数将该对象转移到不同的范围:
import java.util.ArrayList;
public class Puzzle {
public static void main(String[] args) {
ArrayList<Integer> outer = new ArrayList<Integer>();
outer.add(17);
Puzzle.change(outer);
outer.add(6);
System.out.println(outer);
// excpected output:
// [23]
// [23, 6]
//
// actual output:
// [23]
// [17, 7, 6]
}
public static void change(ArrayList<Integer> inner) {
inner.add(7);
inner = new ArrayList<Integer>();
inner.add(23);
System.out.println(inner);
}
}
Run Code Online (Sandbox Code Playgroud)
任何人都可以解释这种奇怪吗?我注意到了与分配相同的行为.
很久以前我最终在一个托管了几个ruby工具的页面上,这些工具有'疯狂'的名字,比如'mangler'或'executor'等等.该工具的工作是修改生产代码(在运行时),以证明您的测试是精确的.
不幸的是,我现在想再次找到该工具,但不记得它被称为什么.有任何想法吗?
java ×2
.net ×1
arguments ×1
c++ ×1
casting ×1
criteria ×1
datetime ×1
hibernate ×1
inheritance ×1
java-7 ×1
jodatime ×1
jsr310 ×1
methods ×1
mvvm ×1
properties ×1
refactoring ×1
row-number ×1
ruby ×1
sql ×1
sql-server ×1
sqlite ×1
testing ×1
tfs ×1
tfs2008 ×1