  We conduct the first empirical study on using knowledge transfer to improve
the generalization ability of large language models (LLMs) in software
engineering tasks, which often require LLMs to generalize beyond their training
data. Our proposed general knowledge transfer approach guides the LLM towards a
similar and familiar API or code snippet it has encountered before, improving
the model's generalization ability for unseen knowledge. We apply this approach
to three software engineering tasks: API inference, code example generation,
and FQN inference, and find transfer span, transfer strategy, and transfer
architecture as key factors affecting the method. Our findings demonstrate the
feasibility of knowledge transfer and its potential to enhance LLMs'
performance in various software engineering tasks. The effectiveness of
knowledge transfer varies depending on the target domain and task, with the
hierarchical strategy being more effective than direct transfer, and AI-Chain
outperforming CoT in prompt design. The implications of these findings extend
beyond software engineering tasks and suggest that knowledge transfer can
enhance LLMs' ability to handle unknowns in any natural language task.
