![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
我的学习历程
cleverwyq
没啥好说的
展开
-
Scala 之 self annotation 标记
package progscala/*alias <=========== */trait Foo { self => def message:String trait Bar { def message = self.message + " Bar" } def fullmessage:String = { object bar exte...原创 2018-12-07 16:59:05 · 290 阅读 · 0 评论 -
最简单groovy程序的执行堆栈
test.groovydef task = { println "hi source code" } task.call()stack,留个映象吧PrintStream是 java.io.* 了原创 2015-02-04 11:17:14 · 1399 阅读 · 0 评论 -
Gradle 入门(一)
build.gradle=========================defaultTasks 'loadFile'task testTask { println "begin without call...."}File[] fileList(String dir){ file(dir).listFiles({file-> file.isFile()} as原创 2014-12-11 18:27:22 · 949 阅读 · 0 评论 -
Groovy的调试环境
除了基本的把官网down下来的source code加到工程中外,还需要两件事一是从http://forge.ow2.org/projects/asm/ 上下载最新的asm jar包,解决了import org.objectweb.asm.Opcodes 等编不过的问题这个时候java compile在Elipse里面还是有很多红叉主要纠结在 groovyjarjarantlr 下的类原创 2015-02-03 22:29:22 · 5234 阅读 · 0 评论 -
Gradle原码入门七
今天分析了Object org.gradle.internal.service.DefaultServiceRegistry.doGet(Type serviceType) 函数 private Object doGet(Type serviceType) throws IllegalArgumentException { synchronized (原创 2015-01-11 00:08:57 · 2322 阅读 · 0 评论 -
Gradle源码入门八
启动的时候,调用了launcher.cli.BuildActionsFactory.java private Runnable runBuildInProcess(StartParameter startParameter, DaemonParameters daemonParameters, ServiceRegistry loggingServices) {原创 2015-01-12 18:35:42 · 1209 阅读 · 0 评论 -
Reflect中的Constructor
package com.example.test;import java.lang.reflect.Constructor;public class myCtor { private String s1, s2; public myCtor(String s1, String s2){ this.s1 = s1; this.s2 = s2; } public myCto原创 2015-01-12 17:16:26 · 881 阅读 · 0 评论 -
ParameterizedType的作用
public interface ParameterizedType extends TypesubParam.javapackage com.example.test;public class subParam extends param { public static void main(String[] args) throws Exception{原创 2015-01-09 18:55:03 · 23512 阅读 · 0 评论 -
Gradle源码一
Gradle执行的关键代码 org.gradle.initialization.DefaultGradleLauncher.java private void doBuildStages(Stage upTo) { // Evaluate init scripts initScriptHandler.executeScripts(gradle);原创 2014-12-19 15:15:04 · 4044 阅读 · 0 评论 -
gradle源码入门学习六
DefaultServiceRegistry之findProviderMethods private void findProviderMethods(Object target) { Set methods = new HashSet(); for (Class type = target.getClass(); type != Object.class原创 2015-01-09 09:51:33 · 1416 阅读 · 0 评论 -
CEF3 源码的下载和编译
http://src.chromium.org/svn/branches/TortoiseSVN , 可能需要设置代理, 否则unknown hostRepository Browser 输入网址,左边列表出所有branch, 选某个branch, checkout...Windows 下面有个\tools\win\ChromeD原创 2015-02-05 11:08:38 · 16541 阅读 · 3 评论 -
GroovyShell的初始化过程
GroovyShell的初始化 public GroovyShell(CompilerConfiguration config) { this(new Binding(), config); } class Binding is subclass of GroovyObjectSupport public GroovyObjectSupport() {原创 2015-02-05 18:33:29 · 3725 阅读 · 0 评论 -
Groovy中closure的delegate
hello.groovyimport groovy.lang.ClosureClosure clos = { println "Hello closure"}println "delegate:" + clos.delegate.class.name;println "owner: " + clos.owner.class.name;clos.call();println "=原创 2015-01-19 12:57:41 · 2710 阅读 · 0 评论 -
非典型的scala程序及其编译后的结果
初学ScalaFolder structure以及部分代码package.scala的代码package comx package object mypkg { def myprint = println("Hello Ji2 in package object") } object mypkg2{ def my原创 2015-03-13 16:48:43 · 1775 阅读 · 0 评论 -
Gradle源码入门学习之十-- Listener & Dispatch
new ListenerBroadcast(OutputEventListener.class);-> public ListenerBroadcast(Class type) { this.type = type; broadcast = new BroadcastDispatch(type); source = new ProxyDis原创 2015-02-15 21:33:17 · 2341 阅读 · 0 评论 -
Gradle中ListenerManager的初始化流程
接口实现 public void addListener(Object listener) { //interface 1 synchronized (lock) { if (allListeners.add(listener)) { for (BroadcastDispatch broad原创 2015-02-16 15:18:33 · 1496 阅读 · 0 评论 -
Gradle源码入门九-settings的include是如何工作的
先上call stackscript.run() in org.gradle.groovy.scripts.internal.DefaultScriptRunnerFactory本代码中,script=settings_ani2pwefx3gv.....->org.gradle.groovy.scripts.BasicScript.methodMissing(String name,原创 2015-02-10 18:32:31 · 3583 阅读 · 0 评论 -
Gradle的init.d的工作流程
init.dgradle.projectsLoaded { println "Hi from loaded" }script.run->//script = init_c691rc.... , 也是后面closure _run_closure1 的delegate通过groovy的closure调用机制->DefaultGradle.java p原创 2015-02-11 00:36:21 · 2769 阅读 · 0 评论 -
Gradle源码入门三
本文以在command窗口执行最简单的 gradle -v 为例子说明从上文提到的EntryPoint.java开始,调用该类的doAction实际调用到Main.java 的doAction protected void doAction(String[] args, ExecutionListener listener) { createActionFactory().原创 2015-01-02 13:49:09 · 2281 阅读 · 0 评论 -
Gradel源码入门二
在org.gradle.launcher.bootstrap ProcessBootstrap.java中private void runNoExit(String mainClassName, String[] args) throws Exception {//new DefaultModuleRegistry, 做了大量初始化的工作,查找classpath结构 Cl原创 2014-12-31 16:01:49 · 1295 阅读 · 0 评论 -
Gradle源码入门四
接三如果我们运行gradle hello (hello 是一个task) 代码会走到org.gradle.launcher.cli.RunBuildAction, 这个类的run()函数 public void run() { executer.execute( new ExecuteBuildAction(startPar原创 2015-01-02 18:44:09 · 1926 阅读 · 1 评论 -
一个简单的groovy script生成的class文件及其反编译
closure的基本调用过程原创 2015-02-08 22:45:21 · 8411 阅读 · 2 评论 -
Gradle源码入门五
分析DefaultGradleLauncher.javaprivate void doBuildStages(Stage upTo) 函数的第二步 // Evaluate settings script SettingsInternal settings = settingsHandler.findAndLoadSettings(gradle);原创 2015-01-06 16:42:24 · 2533 阅读 · 0 评论 -
Box2D源码编译调试配置
今天下了一个Box2D 2.2.1的包,虽然不是最新的, 但是想学习一下这个物理引擎用cmake-gui.exe转化成VS2008的工程以后,发现只能运行testbed, 不能加断点后来改了两个默认的工程配置,就OK了虽然不知道为甚么默认会把debug禁止掉,但是至少可以编译调试了原创 2014-06-03 23:16:36 · 1311 阅读 · 0 评论 -
Java之Enum
public enum Weekday{ Mon("Monday"), Tue("Tuesday"); private final String day; private Weekday(String a){ this.day = a; } public String getday(){ return day; } } pu原创 2013-01-07 17:45:00 · 480 阅读 · 0 评论 -
WPF中的属性绑定 binding
今天试着用data binding写了个小程序, 发现对c#的基本概念还是不清楚,导致走了弯路window 1.xaml xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Heigh原创 2007-05-16 09:08:00 · 1729 阅读 · 0 评论 -
& 运算符重载以后 一个有趣的程序
class TTT { public: int operator&() const { return 13; } };void main(){ TTT t; std::cout std::cout std::cout }/*Output 0012FF7C0012FF7C13*/重载以后对TTT类对象的取地址都输出常数13解决办法是boost::addressof,实际原创 2007-05-03 16:25:00 · 788 阅读 · 0 评论 -
polymorphic_cast 测试学习代码
#include #include #include "boost/cast.hpp"class base1 {public: virtual void print() { std::cout } virtual ~base1() { }};class base2 {public: void only_base2() { std::cout } virtual ~base2()原创 2007-05-03 10:15:00 · 917 阅读 · 0 评论 -
私有析构函数的作用
#include using namespace std;class Base{public: int i ;private: virtual ~Base() { }};Base gb;void main(){ Base b; } K:/Code Boost/PrivateDestructor.cpp(14): error #373: "Base::~Base()" is原创 2007-06-23 19:43:00 · 1743 阅读 · 0 评论 -
含const型成员变量的类的赋值构造函数
#include using namespace std;class Test{public: Test(int a,int b):i(a),j(b) { } Test(const Test& t):i(t.i),j(t.j) { } void show() { cout }public: const int i ; int j;};void main(){ Test原创 2007-06-23 19:15:00 · 2950 阅读 · 0 评论 -
类初始化列表MIL的一些细节
#include using namespace std;class Base{public: Base(int k ):j(k),i(Fun()) { } int j ; int i ; int Fun() { return 2 * j ; } void show() { cout }};void main(){ Base * b = new Base(3)原创 2007-06-23 21:40:00 · 892 阅读 · 0 评论 -
当虚函数的访问权限access control改变时
#include using namespace std;class Base{public: virtual void show() { cout }};class De:public Base{private: virtual void show() { cout }};void main() { Base *p = new De; p->show(); //OK,Ou原创 2007-06-23 19:30:00 · 1158 阅读 · 0 评论 -
Shell_NotifyIcon如何强制显示tip
例如在程序退出是,systrayicon强制显示一个提示,等待若干秒退出LRESULT CMainFrame::OnDestroy(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& bHandled){ NOTIFYICONDATA nd; nd.cbSize = sizeof (NOTIFYICONDATA); nd.h原创 2007-06-25 11:36:00 · 2075 阅读 · 0 评论 -
按照控制面板区域设置显示时间的格式函数
void CTimerWinView::OnDraw(CDC* pDC){ CTimerWinDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); // TODO: add draw code for native data here struct tm *newtime; char am_pm[] = "AM"; time_t long_time;原创 2007-06-20 14:05:00 · 1348 阅读 · 0 评论 -
基于对话框的工程如何添加CReBar
in Dlg.h CReBar bar; CEdit edit; in Dlg.cpp OnInitDialog(){ bar.Create(this); edit.Create(WS_CHILD|WS_VISIBLE, CRect(0,0,40,20),this, 0); bar.AddBar(&edit); bar.SetWindowPos(NULL, 0原创 2007-05-22 14:22:00 · 1893 阅读 · 0 评论 -
va_list,va_start,va_end分析
void dprintf( char * format, ...){ static char buf[1024]; va_list args; // typedef char * va_list; va_start( args, format ); //#define va_start(ap,v) ( ap = (va_list)&v + _INTSIZEOF(v) )原创 2007-05-25 17:53:00 · 2877 阅读 · 0 评论 -
模板偏特化的一个作用
#include using namespace std;template class SumPolicy;templateclass SumPolicy{public: SumPolicy() { i = 1; } int i;};void main(){ SumPolicy s; cout}编译结果:error C2079: s uses undefined cl原创 2007-05-26 19:07:00 · 1273 阅读 · 0 评论 -
C++中调用R Language的类库
一、 安装R,并下载R的源代码安装R:从R的网站下载并运行R-2.15.2-win32.exe,记住安装路径如:C:\Program Files\R\R-2.15.2。从R的网站下载R-2.15.2.tar.gz,并解压缩,将解压后的文件全部copy到安装路径C:\Program Files\R\R-2.15.2下,选择覆盖重复的目录 二、 安装对应版本的Rtools运原创 2012-11-30 10:49:30 · 2085 阅读 · 0 评论 -
异常处理
DWORD FilterFunction() { AfxMessageBox("1 "); // printed first return EXCEPTION_EXECUTE_HANDLER; } void CDirSizeDlg::OnButton1() { // TODO: Add your control notification原创 2007-12-03 15:45:00 · 719 阅读 · 0 评论 -
R6025 runtime error :pure virtual funcion call 原因 (From MSDN)
Description of the R6025 run-time error in Visual C++loadTOCNode(1, symptoms);The C++ program fails and reports the following run-time error:runtime error R6025- pure virtual function cal原创 2007-06-15 11:23:00 · 12210 阅读 · 0 评论